for ele in eles:
for i in xrange(10):
try:
#do something
break
except:
continue
else:
if some condition:
continue
#do something
考虑上面的代码,我知道break
将打破内部for循环,第一个continue
将继续内循环,第二个continue
怎么办?哪个for循环会继续?
答案 0 :(得分:0)
最新的continue
在外部for
循环中生效,如以下示例所示:
>>> 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
请注意"此处"从未打印过。
另外,请注意内部for循环不能以任何方式继续:当迭代器耗尽时执行else
块(在我的示例中:{{1时} y
的所有[4, 5, 6]
已打印)并且没有执行break
个语句时。因为迭代器已经耗尽,所以没有办法让它产生更多的值。