增加 else 可以用来区分循环中途跳出和全部循环完毕两种情况,进行不同的处理,或者换种说法——可以方便地对循环全部完成的情况单独进行分析处理/输出,在某些应用场景可以让代码更紧凑,比如官方文档提供的这个例子:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n/x)
break
循环的目的是找出2到10之间所有自然数的因数分解。如果增加一个额外的 else 块,则能捕捉没有因子的数,也就是质数(素数):
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print( n, 'equals', x, '*', n/x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')