Python中“for”循环之后的“else”有啥用? [复制]
Posted
技术标签:
【中文标题】Python中“for”循环之后的“else”有啥用? [复制]【英文标题】:What is the use of "else" after "for" loop in Python? [duplicate]Python中“for”循环之后的“else”有什么用? [复制] 【发布时间】:2014-06-30 18:27:52 【问题描述】:看来下面两个代码打印的一样,那么python中“for”循环之后的“else”块需要什么。
代码 1:
for i in range(10):
print i
else:
print "after for loop"
代码 2:
for i in range(10):
print i
print "after for loop"
提前致谢。
【问题讨论】:
【参考方案1】:From the documentation:
循环语句可能有一个
else
子句;它在循环因列表耗尽而终止时(使用 for)或条件变为假(使用 while)时执行,但不是在循环由 break 语句终止时执行。
点击链接查看如何使用它的示例。
【讨论】:
【参考方案2】:else
在 for 之后执行,提供 for 没有以break
终止:
for i in range(10):
print i
if (i == 8):
break # termination, no else
else:
print "after for loop"
【讨论】:
当范围为空时(即根本不执行循环体)会发生什么? @AaronDigulla 然后无法访问break
。所以循环就像没有break,
去else
一样。
@Aaron Digulla: "else" 将被执行,因为 "for" 没有被打断【参考方案3】:
这最初是为了在不使用标志的情况下摆脱过程中的所有“GOTO”语句: 这意味着“没有休息”
for i, value in enumerate(sequence):
if value == target:
break
else: #<-- if we finish the loop and did not encounter break, return -1
return -1
return 1 #<-- if we did encounter break, return 1
您可以在此处观看 Raymond Hettinger 的 Pycon 演讲,其中提到了 for/else 构造:将代码转换为漂亮的惯用 Python,http://pyvideo.org/video/1780/transforming-code-into-beautiful-idiomatic-pytho
【讨论】:
以上是关于Python中“for”循环之后的“else”有啥用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Python中for或while块末尾的“else”有啥用? [复制]