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

时间:2013-02-17 15:50:28

标签: python if-statement python-3.x chr ord

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

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

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

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

if nextletter!=("[","{"):
    print(nextletter)

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

5 个答案:

答案 0 :(得分:5)

if nextletter not in ["[", "{"]:
    print(nextletter)

答案 1 :(得分:5)

您无需在处测试这些字符。如果你只是为{{1那里:

nextletter

如果您仍需要进行此类测试,请使用not in operator

[
如果左侧操作数不在右侧的序列中,则

{返回nextletter。我在我的例子中使用了一个带有两个字符的字符串,它被视为一个序列:

if nextletter == "[":
    nextletter = "A"
elif nextletter == "{":
    nextletter = 'a'

答案 2 :(得分:3)

使用not in会员运营商:

if nextletter not in ("[","{"):
    print(nextletter)

另请注意,如果您使用if-elif构造而非个人if's,则可以避免第三次测试。这样,您可以将第3部分放在else块中。

答案 3 :(得分:0)

虽然其他答案都是正确的,但正确的做法是使用elifelse

if nextletter == ("[") :
    print("A")
elif nextletter == ("{") :
    print("a")
else :
    print(nextletter)

答案 4 :(得分:0)

问题是你在询问nextletter是否不等于("[","{")的元组。你想问它是否不等于" ["或" {"。因此,你必须问, if nextletter != "[" and nextletter != "{" 这将检查它是否是" ["也不是" {"。希望这有帮助