2015-05-05 142 views
2

所以我的while循环只是保持循环,即使它不应该,如果只有1个条件的循环工作,然后进行下一行代码,但是当我添加OR语句它不会工作,我敢肯定这是非常愚蠢的事情,但我只是一个初学者,并试图研究这一点。虽然循环与多个条件

Choice = input("What would you like to do? New Game, Continue, or Quit?").upper() 
while Choice != "NEW GAME" or Choice != "QUIT": 
    print ("That input was invalid, please try again.") 
    Choice = input("What would you like to do? New Game, Continue, or Quit? ").upper() 
    if Choice == "QUIT": 
     quit() 

回答

5

条件

Choice != "NEW GAME" or Choice != "QUIT" 

永远是True。任何值Choice将不是"NEW GAME"或不是"QUIT"。相反,使用:

Choice != "NEW GAME" and Choice != "QUIT": 
+0

这很简单....我一直认为和意味着两个条件需要是真实的,但工作,谢谢:) –

+0

这正是'和'的意思。但是这种情况下的条件是'!=',而不是'='。 –

0

我猜你想要一个and那里,没有一个or ...

因为Choice不能在同一时间"NEW GAME""QUIT"不同。换句话说,无论Choice的值是什么,您的环路条件始终为True

2

我认为你正在寻找

while Choice not in ["New Game", "Continue", "Quit"]

或更好地允许替代资本:

while Choice.upper() not in ["NEW GAME", "CONTINUE", "QUIT"]

也请uncapitalize变量Choice。当其他Python程序员看到一个以大写字母开头的变量时,他们首先假定它是一个类名。