在Python中for和while可搭配else语句
循环语句可能带有 else 子句;它会在循环耗尽了可迭代对象 (使用 for) 或循环条件变为假值 (使用 while) 时被执行,但不会在循环被 break 语句终止时被执行。 以下搜索素数的循环就是这样的一个例子:
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')
else: # 添加一个else来确认else与哪个for搭配
print('finish') # 若于缩进层次的最近for搭配,则只会打印一次finish
执行结果:
2 is a prime number # 输出1 3 is a prime number # 输出2 4 equals 2 * 2 # 输出3 5 is a prime number # 输出4 6 equals 2 * 3 # 输出5 7 is a prime number # 输出6 8 equals 2 * 4 # 输出7 9 equals 3 * 3 # 输出8 finish # 输出9
以上例子来源于官方文档(做了个小修改)
个人理解:
输出1:因为 range(2,2) 是空的,所以内循环直接耗尽可迭代对象,没有触发 if 语句中的 break,所以跳到了 else 语句
输出3:此时 n = 4,当 x = 2 时触发 if 语句,执行 break 语句,不执行 else 语句。
else 语句 在缩进上与所搭配的 for 语句同级
原文章来源于:https://blog.csdn.net/FlyChestnut/article/details/107362558
本站文章主要用于个人学习记录,可能对您有所帮助,仅供参考!

