坚持下一个字母生成器 - Python 3

use*_*719 2 python if-statement chr python-3.x ord

目前,我正在网上学习一些计算机科学课程.我已经发出了编写程序的任务,该程序在有效输入后将打印字母表中的下一个字母.这是我的代码:

char = input()
ordchar = ord(char)
nextletter = ordchar + 1
nextletter = chr(nextletter)

if nextletter == ("["):
    print("A")

if nextletter == ("{"):
    print("a")

if nextletter!=("[","{"):
    print(nextletter)
Run Code Online (Sandbox Code Playgroud)

现在,我确实看到了代码的问题,虽然我不知道如何纠正它.基本上,在第二行到最后一行代码中,我希望它基本上说"如果nextletter不等于{或[print nextletter".

Inb*_*ose 5

if nextletter not in ["[", "{"]:
    print(nextletter)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 5

你并不需要测试这些字符在所有.在它之前,你的代码确保nextletter永远将是要么[或者{,如果你只是分配一个不同的信nextletter有:

if nextletter == "[":
    nextletter = "A"
elif nextletter == "{":
    nextletter = 'a'
Run Code Online (Sandbox Code Playgroud)

如果您仍需要进行此类测试,请使用not in运算符:

if nextletter not in '[{':
Run Code Online (Sandbox Code Playgroud)

not in返回True,如果左边的操作数不存在右边的列中.我在我的例子中使用了一个带有两个字符的字符串,它被视为一个序列:

>>> '[' in '[{'
True
>>> '0' in '[{':
False
Run Code Online (Sandbox Code Playgroud)