2014-03-02 42 views
0

我正在制作一个简单的猜谜游戏,并遇到了一些问题。首先,我是Python新手,除了一些批处理外,这是我的第一个编程语言。 当我尝试执行以下代码时,即使条件为真,elifelse也不会与之交互。它似乎总是回应if,因为它总是如此。多条件虽然循环

#Calder Hutchins 3-1-14 
#Guess Game 
import time 
playGame = "" 
guessTry = 3 
print "Would you like to play a game? (y/n)" 
while playGame != "y": 
    playGame = raw_input(">") 
    if playGame == "y" or "n": 
     print "Great! Let's get started!" 
     print "Answer the following questions correctly to level up!" 
    elif playGame == "n": 
     print "Very well...." 
     time.sleep(2) 
     quit() 
    else: 
     print "Invalid answer, please re-type." 
print "end of the while, test." 

此外,我想知道流量控制,因为它对我来说是新的。有没有办法让它更有效率,我粘贴的代码。

编辑:这不是重复的......如果你们有些人会花时间看看我的问题,你会发现它不是。在Stack Overflow上看到这么多次发生,我感到非常失望。

+0

除了这个我想你是不是很了解使用if/elseif的。我建议看看http://docs.python.org/2/tutorial/controlflow.html – Hugoagogo

+0

好的,我会看看它,我正在使这个脚本更多地学习这个概念。 –

+1

在这个例子中,我认为如果if语句的计算结果为false,那么if语句简单地说就是playGame ==“y”,如果计算结果为false,它将移动到其他情况,所以你非常接近。 – Hugoagogo

回答

0

电脑很笨,你需要明确说明你想要评估什么。

if playGame == "y" or playgame == "n": 

在你的版本将始终为true,因为当两个字符串进行比较,将得到评估,以Truestrstr永远是True

>>> bool('a' or 'c') 
True