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