只是搞乱Python 3的功能和用户输入,但真的在这里摸不着为什么!=赢了工作?如果用户输入YES或是,则仍会生成消息"无效答案。是或否!"?
由于
def program():
valid_answers = ("YES", "yes", "NO", "no")
variable_input = input("Are bananas yellow? Answer YES or NO: ")
if variable_input != valid_answers:
print("Invalid answer. YES or NO only!")
program()
elif variable_input == "YES":
print("Correct! They are!")
program()
elif variable_input == "yes":
print("Correct! They are!")
program()
elif variable_input == "NO":
print("Try again. They are definitely yellow.")
program()
elif variable_input == "no":
print("Try again. They are definitely yellow.")
program()
program()
答案 0 :(得分:2)
首先,我会将valid_answers
列入清单。 !=表示不等于或等同于。而不是!=,你not in
。你应该写这样的代码:
def program():
valid_answers = ["YES", "yes", "NO", "no"] # Note the change from tuple to list
variable_input = input("Are bananas yellow? Answer YES or NO: ")
if variable_input not in valid_answers: # Note the != to not in
# do something
# rest of your code
回应评论......
对于input
中的多个选项,您可以使用元组并“扫描”它以查看元组中是否存在variable_input
,然后执行如下操作:
elif variable_input == ("yes", "YES"):
# do something
现在,如果我没记错的话,在Python 3中你也可以使用or
运算符而不是元组。 :)
答案 1 :(得分:1)
您正在检查variable_input
字面上是否与元组不相等。您想检查variable_input
是否为not in
元组。
if variable_input != valid_answers:
应该是:
if variable_input not in valid_answers:
答案 2 :(得分:1)
更正:
if variable_input != valid_answers:
应为if variable_input not in valid_answers:
你可以像这样减少if语句:
最终计划
def program():
valid_answers = ("YES", "yes", "NO", "no")
variable_input = input("Are bananas yellow? Answer YES or NO: ")
if variable_input not in valid_answers:
print("Invalid answer. YES or NO only!")
program()
elif variable_input in ["YES", "yes"]:
print("Correct! They are!")
program()
elif variable_input in ["NO", "no"]:
print("Try again. They are definitely yellow.")
program()
program()