Python运算符!=无法正常工作

时间:2019-01-26 22:22:08

标签: python operators not-operator

有人知道为什么此示例不起作用吗?我多年来没有使用过Python,并且想测试NOT运算符。据我记得这应该可行,我已经在线检查过,它似乎是正确的格式。我想念什么吗?

基本上,它只是要求输入1、2或3。如果用户输入这些内容,则会中断循环。如果他们没有输入1、2或3,它将打印到屏幕并再次循环播放。当前仅打印“无效输入!”然后循环不中断。

while True:
    x = input("1, 2, or 3?\n")
    if x != 1 or x != 2 or x != 3:
        print("Invalid input!")
    else:
        break

我正在使用Python 3.6.4。

1 个答案:

答案 0 :(得分:1)

嗯,这将永远是正确的。如果我键入1,它将失败第一个条件,但会通过其他两个条件:x != 2 or x != 3。对于所有条件,除1、2或3外的任何其他数字也将为true。比较运算符没有问题。

我认为您想做类似的事情:

x = int(input("1, 2, or 3?\n"))
if x not in [1, 2, 3]:
    print("Invalid input!")

xint的转换也很重要。否则,x与数字的比较将始终为false