Python 关于输入函数和或逻辑的一些问题

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

我对一些输入和if语句有一个简单的问题。我正在使用此页面中的函数,但我的修改无效。这是我的代码:

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]:
    ...