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!")
x
到int
的转换也很重要。否则,x
与数字的比较将始终是 false
.
有谁知道为什么这个示例不起作用?我已经很多年没有使用 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!")
x
到int
的转换也很重要。否则,x
与数字的比较将始终是 false
.