Python 运算符 != 未按预期工作

Python operator != isn't working as expected

有谁知道为什么这个示例不起作用?我已经很多年没有使用 Python 了,想测试 NOT 运算符。据我所知,这应该可行,我已经在线检查过,它似乎是正确的格式。我错过了什么吗?

本质上,它只是要求输入 1、2 或 3。如果用户输入这些,它将打破循环。如果他们不输入 1、2 或 3,它将打印到屏幕并再次循环。目前它只打印 "Invalid input!" 然后循环不中断。

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,第一个条件会失败,但会通过另外两个条件: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.