【问题标题】:How can I make a variable equal more then one string - Python如何使变量等于一个字符串以上 - Python
【发布时间】:2013-01-17 02:34:58
【问题描述】:

我正在做一个问答游戏,当我被问到任何问题时,我会输入正确的答案,我在包含正确答案的变量中定义了正确答案,但如果不是第一个则表示错误该变量的单词(在本例中为 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 变量的第一个单词。但是,如果我输入 metalica、Slayer、slayer、Anthrax、anthrax、megadeth 或 Megadeth,我会得到错误的答案文本。如果我要键入除该变量中的第一个单词以外的任何内容,是否有办法让所有这些字符串都适用于这个变量?我是python的菜鸟,所以任何帮助都会很棒。

【问题讨论】:

  • 顺便说一句:input("...") 可以直接使用,str(input("...")) 不需要。
  • 虽然使用raw_input("...")会更好
  • @elssar:OP 使用的是 Python 3.3。

标签: python string variables python-3.3


【解决方案1】:

将它们放入一组并使用in 测试正确答案:

q1answer = {"Metallica", "metallica", "Slayer", "slayer", "Anthrax", "anthrax", "Megadeth", "megadeth"}
...
if answerinput in q1answer:

现在,您的ors 系列正在生成第一个 - "Metallica"。您也可以停止重复每个名称以不区分大小写,而是使用lower

if answerinput.lower() in q1answer:

【讨论】:

    【解决方案2】:

    像这样更改您的代码:

    q1answer = ("metallica", "slayer", "anthrax", "megadeth")
    ...
    
    if answerinput.lower() in q1answer:
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多