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