在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