2014-05-16 56 views
2

我已经测试了下列程序,并且没有错误。但是,无论何时输入"hangman",它都不会启动名为"if response_2"if语句代码块。为什么它没有运行它?Python 2.7:如果代码块不工作

response_2 = raw_input("What would you like to play? Hangman or Word Guess?") 
    if response_2 == ("Hangman", "hangman"): 
     print "Running Hangman..." 
     print "Catching Criminals..." 
     print "Building Gallows..." 
     print "Getting that one song boy from Pirate's of the Carribean" 
    elif response_2 == ("Word_Guess", "word_guess", "word guess", "Word Guess", "Word guess", "word Guess", "Word_guess", "word_Guess"): 
     print "Not completed yet" 
+1

请将代码粘贴到问题中。随着时间的推移,链接变得糟糕,那么这会离开SO? –

+0

你的情况可以**不会**为“真”。为什么这个街区会跑? – jonrsharpe

+1

它需要是一个“in”,而不是与元组的平等。输入的内容不等于它......它是它的一员。 –

回答

8

这是因为你直接比较的元组==,这总是会给False作为raw_input给出了一个字符串,而不是tuple。您需要检查是否有任何一个响应在序列中。与elif内的类似的比较同样

if response in ('Hangman', 'hangman'): 

:与in做到这一点。

+0

非常感谢! – The10thDoctor

+0

@ The10thDoctor太棒了,很高兴我能帮到你。如果我的回答对你有帮助,你是否介意在宽限期过后接受它?您可以通过点击投票计数下面的勾号来做到这一点,以便它变成绿色并保持绿色。谢谢。 –