代码图像的链接在注释中,请检查它以了解我的问题。我不明白注释掉的代码和它上方的if语句有什么区别。他们不一样,结果不应该一样吗?但是注释掉的代码给出了正确的结果,而不是上面的代码。
if string != "+" or string != "-" or string != "*" or string != "/" or string != "exit":
print("invalid input")
elif string == "+" or string == "-" or string == "*" or string == "/" or string == "exit":
break
即使我传递了适当的字符串,它也会生成无效的输入,并要求我一遍又一遍地输入。
if string == "+" or string == "-" or string == "*" or string == "/" or string == "exit":
break
elif string != "+" or string != "-" or string != "*" or string != "/" or string != "exit":
print("your input is wrong, please enter again:")
但是使用上面给出的代码可以为我提供正确的结果。
答案 0 :(得分:1)
您的整个代码应缩短为:
bannedstring = ['+', '-', '*', '/', 'exit']
if string in bannedstring:
break
else: # Use else not elif!
print('invalid input')
一行代码中的or
不得超过1。
答案 1 :(得分:0)
您正在使用具有多个or
条件的!=
。该布尔值将始终为真。
考虑
string = '+'
if string != "+" or string != "-": #False or True = True
print(string != "+") #False
print(string != "-") #true
and
关键字更合适