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

时间:2019-03-19 09:05:06

标签: python-3.x menu

我正在尝试在此处创建菜单。该菜单允许用户输入选项。还有一个验证功能可以检查用户输入的选项是否有效。

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:

但是错误仍然存​​在。

这是什么错误?

1 个答案:

答案 0 :(得分:0)

elif user_input!=“ 1”或user_input!=“ 2”:

让我们假设您的用户输入为“ 1”,则该语句将为true 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