python中while循环的多个条件

时间:2014-10-26 21:40:38

标签: python while-loop multiple-conditions

我遇到问题,包括在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)

2 个答案:

答案 0 :(得分:4)

您需要使用and;如果满足所有条件,你希望循环继续,而不只是一个:

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

但是,你不需要括号。

最好在这里测试会员资格:

while name not in '.!?':

答案 1 :(得分:1)

这个条件:

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

总是如此。只有错误的所有三个子条件都是错误的,这需要这样做 name同时等于".""!"以及"?"

你的意思是:

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

或者更简单地说,

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