在python中继续for else

在python中继续for else,python,Python,考虑上述代码,我知道中断将中断内部for循环,第一个继续将继续内部for循环,第二个继续如何?它将继续哪个for循环?最新的continue对外部for循环生效,如下例所示: for ele in eles: for i in xrange(10): try: #do something break except: continue else: if some condi

考虑上述代码,我知道
中断
将中断内部for循环,第一个
继续
将继续内部for循环,第二个
继续
如何?它将继续哪个for循环?

最新的
continue
对外部
for
循环生效,如下例所示:

for ele in eles:
   for i in xrange(10):
       try:
            #do something
           break
        except:
            continue
   else:
       if some condition:
           continue
       #do something
请注意,“此处”从不打印


另外,请注意,内部for循环不能以任何方式继续:迭代器耗尽时执行
else
块(在我的示例中:当
[4,5,6]
中的所有
y
都已打印时)以及没有执行
break
语句时。因为迭代器已经耗尽,所以没有办法让它产生更多的值。

为什么不试试一个例子看看呢?但是,请考虑一下-当到达
else
块时,内部
for
循环是否仍在运行?插入
print()
,然后查看哪一个
continue
s.@musefan:如果
for
循环未中断地完成,则执行
else
。例如,如果未执行
break
语句。例如,非常有用。@MartijnPieters:Ahhh,这很有趣。。。虽然使用
else
可能不是最好的关键字选择。还有,素数示例函数,您是否需要
else
?当然,只要返回true就可以了,因为只有在不返回false的情况下才会被命中already@musefan:几天前,python开发人员邮件列表中引用了
else
关键字的错误选择:
>>> for x in [1, 2, 3]:
...     for y in [4, 5, 6]:
...         print('x =', x, 'y =', y)
...     else:
...         continue
...     print('here')
... 
x = 1 y = 4
x = 1 y = 5
x = 1 y = 6
x = 2 y = 4
x = 2 y = 5
x = 2 y = 6
x = 3 y = 4
x = 3 y = 5
x = 3 y = 6