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



>有谁知道为什么这个样本不起作用?我已经很多年没有使用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 ,它将失败第一个条件,但它会通过其他两个条件: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!")

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

最新更新