我正在开展一个问答游戏,当我被问到任何问题时,我输入了正确的答案,我在一个保存了正确答案的变量中定义但是如果不是第一个答案就说错了该变量的词(在这种情况下,Metallica)。这是我的代码的样子。
q1answer = "Metallica" or "metallica" or "Slayer" or "slayer" or "Anthrax" or "anthrax" or "Megadeth" or "megadeth"
answerinput = str(input("name one of the 'Big Four' metal bands'"))
if answerinput == q1answer:
print ("You got the right answer!")
else:
print ("That is the wrong answer...")
现在,如果我输入'Metallica',那将是正确的,因为它是q1answer变量的第一个单词。但是,如果我输入metallica,Slayer,slayer,Anthrax,anthrax,megadeth或Megadeth,我会得到错误的答案文本。如果我要键入除该变量中的第一个单词之外的任何内容,是否有一种方法可以让所有这些字符串都适用于这个变量?我是python的新手,所以任何帮助都会很棒。
答案 0 :(得分:3)
将它们放入一组并使用in
代替测试正确答案:
q1answer = {"Metallica", "metallica", "Slayer", "slayer", "Anthrax", "anthrax", "Megadeth", "megadeth"}
...
if answerinput in q1answer:
现在,您的or
系列只会产生第一个"Metallica"
。您也可以停止复制每个名称以区分大小写,而不是使用lower
:
if answerinput.lower() in q1answer:
答案 1 :(得分:1)
更改您的代码:
q1answer = ("metallica", "slayer", "anthrax", "megadeth")
...
if answerinput.lower() in q1answer:
...