if条件如何在while循环中起作用?

时间:2018-12-03 20:05:47

标签: python python-3.x

代码图像的链接在注释中,请检查它以了解我的问题。我不明白注释掉的代码和它上方的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:")

但是使用上面给出的代码可以为我提供正确的结果。

2 个答案:

答案 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关键字更合适