如何让用户输入特定单词以获得特定响应(Python)
我正在用Python做一个简单的测验,想看看用户能不能猜出谁是我的朋友。这个程序还没完成,但基本上我想让程序根据用户输入的答案给出相应的反馈。如果用户输入的答案和我朋友的名单匹配,比如第一个问题是“谁是我最好的朋友?”。如果用户输入“Mariah”,我希望程序能告诉他们“你答对了”,然后继续下一个问题。我的问题是,当我输入这个答案时,程序应该检查是否匹配,但即使是正确的输入,它也没有匹配上。程序完全忽略了我用来显示“你答对了!”的if
语句,直接跳到else
语句,显示“抱歉,你答错了”。我该怎么解决这个问题呢?
list = ["Mariah", "Julian", "Gabbi"]
variable = input("do you know my friends? yes or no? ")
if variable.lower() == "yes":
print("oh really... ")
variable2 = input("what is my best friend's name? ")
if variable2.lower() == list[0]:
print("you are correct, but she's not my only friend")
else:
print("sorry you're WRONG!")
elif variable.lower() == "no":
print("i thought so...")
else:
print("that answer didn't make sense")
2 个回答
1
你分享的代码缩进有问题,不过我猜这可能只是提问时的格式问题。
另外,尽量不要使用那些会覆盖Python关键字或已定义函数的变量名,比如说 list
。
还有,你把 variable.lower()
和列表进行了比较。这样的话,你是在把一个强制转换为小写的字符串和名字 'Mariah'
(这个名字有大写字母)进行比较。
你可以通过以下方式来修复这个问题:
friends = ["Mariah", "Julian", "Gabbi"]
variable = input("do you know my friends? yes or no? ")
if variable.lower() == "yes":
print("oh really... ")
variable2 = input("what is my best friend's name? ")
if variable2.lower() == friends[0].lower():
print("you are correct, but she's not my only friend")
else:
print("sorry you're WRONG!")
elif variable.lower() == "no":
print("i thought so...")
else:
print("that answer didn't make sense")
1
你把输入的内容转换成小写字母了,但列表里的值却没有转换。
试试这个:
if variable2.lower() == list[0].lower():