如果循环在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"