我遇到问题,包括在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)
答案 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 { '.', '!', '?' }: