目前,我正在网上学习一些计算机科学课程。我已经发出了编写程序的任务,该程序在有效输入后将打印字母表中的下一个字母。这是我的代码:
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”。
答案 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)
虽然其他答案都是正确的,但正确的做法是使用elif
和else
:
if nextletter == ("[") :
print("A")
elif nextletter == ("{") :
print("a")
else :
print(nextletter)
答案 4 :(得分:0)
问题是你在询问nextletter是否不等于("[","{")
的元组。你想问它是否不等于" ["或" {"。因此,你必须问,
if nextletter != "[" and nextletter != "{"
这将检查它是否是" ["也不是" {"。希望这有帮助