【发布时间】:2015-06-27 01:22:31
【问题描述】:
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 将继续内部for 循环,那么第二个continue 呢?会继续哪个for循环?
【问题讨论】:
-
为什么不尝试一个例子看看呢?不过请考虑一下——当到达
else块时,内部for循环是否仍在运行? -
插入
print(),看看是哪一个continues。 -
@musefan:如果
for循环完成且未被中断,则执行else。例如。如果没有执行break语句。例如在calculating prime numbers 时非常有用。 -
@MartijnPieters:啊,这很有趣……尽管使用
else可能不是关键字的最佳选择。另外,那个素数示例函数,你甚至需要else吗?当然,它只返回 true 就可以工作,因为只有当它还没有返回 false 时才会被击中 -
@musefan:
else关键字的糟糕选择日前在 python-dev 邮件列表中被引用。 :)
标签: python