Python 程序不';不要退出while块
我有一个Python 程序不';不要退出while块,python,loops,if-statement,Python,Loops,If Statement,我有一个while块,在它里面我有决策块,包括elif块。我希望程序在obje_error==0时退出while块,但while块会重复 我假设当其他条件不完整时,obje_error==0。我删除了elif块,它成功了,但我希望所有的块都能正常工作 您可以看到下面的代码: while (obje_error == 1): Sen=raw_input("tas mi,kagit mi yoksa makas mi?") if (Sen != "tas") :
while
块,在它里面我有决策块,包括elif
块。我希望程序在obje_error==0
时退出while块,但while块会重复
我假设当其他条件不完整时,obje_error==0
。我删除了elif
块,它成功了,但我希望所有的块都能正常工作
您可以看到下面的代码:
while (obje_error == 1):
Sen=raw_input("tas mi,kagit mi yoksa makas mi?")
if (Sen != "tas") :
print "Lutfen tas,kagit ya da makas'i secin..."
obje_error=1
elif (Sen != "kagit"):
print "Lutfen tas,kagit ya da makas'i secin..."
obje_error=1
elif Sen != "makas":
print "Lutfen tas,kagit ya da makas'i secin..."
obje_error=1
else:
obje_error=0
你能告诉我问题是什么以及我能做什么吗?如果字符串等于你测试的其中一个字符串,那么它将不等于所有其他字符串。因此,
if
语句中的一条肯定会成功,而您永远也不会到达最后的else
您可能想要
==
而不是=
Sen
只能保存一个字符串,因此它将是tas
或kagit
或makas
或其他内容,因此它将始终触发三个中的第一个或第二个=代码>测试。它永远不会到达最后一个else
语句。你可能是想测试==
吗?@MartijnPieters说的。我认为您可能希望在
测试中使用,或者如果
具有多个条件,则使用单个,或者一起使用。此外,如果您只想在满足条件时中断无限循环,for
withbreak
的for往往更干净。你能从更高的层次来阐述你对这整段代码的需求吗?谢谢你的回答。我用这样的元组解决了这个问题:if Sen in(“tas”、“kagit”、“makas”):obje_error=0谢谢你的回答,但我希望当用户输入不等于“tas”、“kagit”或“makas”时,while循环必须重复。因此,我写if(Sen!=“tas”),但当我从终端给出值“tas”、“kagit”或“makas”时,它与其他不等于“tas”、“kagit”或“makas”的输入一样重复,并且不会退出while循环。@ErenCan,只要设置obje_error=1
,while循环就会重复。