Python 带有用户输入 (input()) 的 if 语句不起作用 (Python 3.7)

Python if statement with a user input (input()) not working (Python 3.7)

我想在这里创建一个菜单。该菜单允许用户输入选项。还有一个验证函数来检查用户输入的选项是否有效。

def menu():
    while True:
        display_menu()
        user_input = validate("Choose Option")
        if user_input == 1:
            pass

        elif user_input == 2:
            exit()


def display_menu():
    print("1) Application")
    print("2) Quit Application")


def validate1(q):
    user_input = input(q)
    if len(user_input) == 0:
        return False

    elif user_input != "1" or user_input != "2":    # Error is likely here
        print("Invalid option, please choose another option")
        return False

    else:
        return user_input

当您 运行 此代码时,您将获得:

1) Application
2) Quit Application
Choose Option 

然而输入1后,验证函数认为输入1无效,得到:

Invalid option, please choose another option
1) Application
2) Quit Application
Choose Option 

这不应该是这种情况,因为 1 应该是有效的。起初我认为这是关于变量类型的错误 user_input 并且我尝试更改它(从第 22 行开始):

elif user_input != 1 or user_input != 2:

但是错误仍然存​​在。

这里有什么错误?

elif user_input != "1" 或 user_input != "2":

让我们假设您的用户输入是“1”那么这将使该语句为真 user_input (1) 不等于 (2)

因此您需要将该语句更改为类似这样的其他内容:

def validate(q):
    user_input = input(q)
    if len(user_input) == 0:
        return False

    if user_input == str(1) or user_input == str(2):    # Valid Options
        return user_input
    else:
        print("Invalid option, please choose another option")
        return False