Python中"for"循环后面使用"else"有什么用?
看起来下面的两个代码输出的结果是一样的,那为什么在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"
提前谢谢你。
3 个回答
1
这个最初是为了去掉程序中的所有“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
4
当for
循环没有被break
中断时,else
部分会在for
循环结束后执行。
for i in range(10):
print i
if i == 8:
break # termination, no else
else:
print "after for loop"
7
循环语句可以有一个
else
子句;当循环因为列表用完(用for
循环)或者条件变为假(用while
循环)而结束时,这个else
子句会被执行。但是,如果循环是因为break
语句被强制终止的,那就不会执行这个else
子句。
点击链接可以查看这个用法的例子。