Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 程序不';不要退出while块_Python_Loops_If Statement - Fatal编程技术网

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
with
break
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循环就会重复。