-1

有谁知道为什么这个样本不起作用?我已经好几年没有使用 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。

4

1 回答 1

1

好吧,这将永远是正确的。如果我输入1,它将不符合第一个条件,但它会通过其他两个:x != 2 or x != 3。任何不同于 1、2 或 3true的数字也适用于所有条件。比较运算符没有问题。

我想你想做这样的事情:

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

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

于 2019-01-26T22:31:38.823 回答