2014-10-26 163 views
0

我遇到了问题,其中包括Python中while循环的多个语句。它适用于单个条件,但是当我包含多个条件时,循环不会终止。我在这里做错了什么?python中的while循环的多个条件

name = raw_input("Please enter a word in the sentence (enter . ! or ? to end.)") 

final = list() 

while (name != ".") or (name != "!") or (name != "?"): 
    final.append(name) 
    print "...currently:", " ".join(final) 
    name = raw_input("Please enter a word in the sentence (enter . ! or ? to end.)") 
print " ".join(final) 

回答

4

您需要使用and;你想要的循环继续,如果所有条件得到满足,而不仅仅是一个:

while (name != ".") and (name != "!") and (name != "?"): 

你并不需要但是括号。

更好的将在这里测试成员:

while name not in '.!?': 
+0

是我的错。感谢您的帮助,虽然...工作很好 – upendra 2014-10-26 21:43:50

1

这种情况:

(name != ".") or (name != "!") or (name != "?") 

总是正确的。假设所有三个子条件都是错误的,这只会是错误的,这将要求 name等于".""!""?"同时。

你的意思是:

while (name != ".") and (name != "!") and (name != "?"): 

,或者更简单地说,

while name not in { '.', '!', '?' }: 
+0

是的,我意识到我愚蠢的错误。谢谢你的好解释.. – upendra 2014-10-26 21:45:45