如果循环在Python中停止,则仅运行statment一次
我一直在做一些事情,需要在另一个无限如果循环在Python中停止,则仅运行statment一次,python,while-loop,nested-loops,Python,While Loop,Nested Loops,我一直在做一些事情,需要在另一个无限while循环中运行一个无限while循环(不要判断),并在发生某种事件时中断。我需要在内部循环中断时运行一次语句,而不需要在外部循环中修改它 我需要这样的东西: while True: while condition: do stuff <run some code when the inside while finishes> continue running external loop without run
while
循环中运行一个无限while
循环(不要判断),并在发生某种事件时中断。我需要在内部循环中断时运行一次语句,而不需要在外部循环中修改它
我需要这样的东西:
while True:
while condition:
do stuff
<run some code when the inside while finishes>
continue running external loop without running the line inside <>
为True时:
而条件:
做事
继续运行外部环路,但不运行内部线路
基本上,a与else
构造相反
编辑:我已经更改了代码,以与实际问题相关。我真的为这个错误感到抱歉。当内部while中断时,如果只需要运行一次语句,为什么不直接将其放入If块
while True:
while condition:
if other-condition:
<code to run when the inside loop breaks>
break
<continue external loop>
添加一个在代码执行一次后切换的布尔值!这样,你总是可以让事情在一个循环中发生一次。另外,如果要再次运行外部循环,内部循环将再次启动,并再次中断,因此您确定只运行该行一次吗
broken = False
while True:
while condition:
if other-condition:
break
if not broken:
broken = True
<run some code when the inside while breaks>
continue running external loop without running the line inside <>
break=False
尽管如此:
而条件:
如果出现其他情况:
打破
如果没有损坏:
断章取义
继续运行外部环路,但不运行内部线路
如果需要在之后继续编码,而循环比使用变量was\u break
while True:
was_break = False
while condition:
if other-condition:
was_break = True
break
if was_break:
<run some code when the inside while breaks>
continue running external loop without running the line inside <>
为True时:
这是假的吗
而条件:
如果出现其他情况:
这是真的吗
打破
如果你被打破了:
继续运行外部环路,但不运行内部线路
这方面的Pythonic方法是将else与while循环一起使用。应该这样做
如果else语句与while循环一起使用,则在条件变为false时执行else语句
x=1
while x:
print "in while"
x=0
#your code here
else:
print "in else"
为什么不在中断之前移动
?因为我写代码时把代码弄乱了。抱歉。@KuraiHikari可能是我误解了您的编辑,但我提出的解决方案似乎仍然有效。如果不是这样,请澄清。问题是,没有If
和其他条件。我自己误解了这个问题,把它贴错了。如果我将条件
而不是其他条件
,基本上重复代码,那么您的代码就可以工作了。@KuraiHikari当事件发生时,您如何打破内部循环,那么?而条件
是事件检查器。一开始我确实把问题搞砸了。我需要的是一种方法,在完成时运行一些代码,但只运行一次,如果不每次运行外部while
并且条件为False
。while else
的问题是else
将在while
中的条件为False
时每次运行else
,因此这是不可行的。当循环结束时,我只需要该代码运行一次。如果在中执行break
,则不会执行否则
,而-OP需要相反的东西。
x=1
while x:
print "in while"
x=0
#your code here
else:
print "in else"