2013-01-17 81 views
1

我正在參加一個測驗遊戲,當我被問到任何問題時,我輸入正確的答案,我在一個變量中定義了正確答案但它表示如果它不是該變量的第一個單詞(在這種情況下是Metallica),它就是錯誤的。這是我的代碼的樣子。現在如何讓一個變量等於多一個字符串 - Python

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變量的第一個字是正確的。但是,如果我輸入金屬,殺手,殺手,炭疽,炭疽,megadeth或Megadeth,我會得到錯誤的答案文本。是否有一種方法可以讓所有這些字符串爲這個變量工作,如果我只鍵入該變量中的第一個單詞?我是python的新手,所以任何幫助都會很棒。

+1

旁白:你可以簡單地使用'輸入(「...」) ',不需要使用'str(input(「...」))''。 – DSM

+0

儘管最好使用'raw_input(「...」)' – elssar

+2

@elssar:OP使用的是Python 3.3。 – DSM

回答

3

把它們放在一組和測試使用in而不是一個正確的答案:

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

現在,你的一系列or s的只是導致第一個 - "Metallica"。您也可以停止不區分大小寫複製每一個名字,而是使用lower

if answerinput.lower() in q1answer: 
1

更改您這樣的代碼:

q1answer = ("metallica", "slayer", "anthrax", "megadeth") 
... 

if answerinput.lower() in q1answer: 
    ... 
相關問題