Python 关于输入函数和或逻辑的一些问题
我对一些输入和if语句有一个简单的问题。我正在使用此页面中的函数,但我的修改无效。这是我的代码:Python 关于输入函数和或逻辑的一些问题,python,if-statement,input,Python,If Statement,Input,我对一些输入和if语句有一个简单的问题。我正在使用此页面中的函数,但我的修改无效。这是我的代码: def correct(prompt): while True: try: value = int(raw_input(prompt)) except ValueError: print("Enter a number, please!") continue if (va
def correct(prompt):
while True:
try:
value = int(raw_input(prompt))
except ValueError:
print("Enter a number, please!")
continue
if (value != 1) or (value != 2):
print("Enter a value of either 1 or 2, please!")
continue
else:
break
return value
问题似乎出在if语句上。预期行为是拒绝不是1或2的输入。但是,它拒绝所有输入。此测试存在问题:
if (value != 1) or (value != 2):
...
显然,对于任何值,包括1
和2
,都是True
。您可以在
中使用:
if value not in [1, 2]:
...
此外,函数中的return
语句永远不会到达,因为它缩进为循环的一部分,而循环最终会被break
终止。您希望在if
语句中使用和而不是或。并非所有数字都是1
或2
。因此,您需要将代码从if(value!=1)或(value!=2):
更改为if(value!=1)和(value!=2):
您可以使用:
if value not in [1,2]:
...