循环与异常中的 else 子句
1. 循环中的 else 子句
- 循环语句支持
else 子句
,在循环结束的时候执行它 for 循环
中,可迭代对象中的元素全部循环完毕时,执行该子句while 循环
的条件为假时,执行该子句break 语句
终止循环时,不执行该子句
1.1 代码示例
比如下面代码是从10个范围0~10的随机数组成的列表中,查找是否有指定的数字(比如 5)
python
import random
lst = [random.randint(0, 10) for i in range(10)]
print(lst)
search_num = 5
for num in lst:
if num == search_num:
print(f'✅随机数列表中找到了 {search_num}')
break
else:
print(f'❌随机数列表中没有找到 {search_num}')
仔细看:else 子句
属于 for 循环
,不属于 if 语句
。
运行结果示例:
[1, 2, 3, 10, 9, 10, 1, 6, 5, 7]
✅随机数列表中找到了 5
[10, 1, 6, 9, 10, 9, 4, 0, 7, 1]
❌随机数列表中没有找到 5
2. 异常中的 else 子句
try ... except
语句具有可选的else 子句
,该子句如果存在,它必须放在所有except 子句
之后try
的else 子句
在未触发异常时执行
2.1 代码示例
下面代码为官网示例,除法函数的一个实现:当除数为0时抛出异常,不为0时输出结果
python
def divide(x, y):
try:
result = x / y
except ZeroDivisionError:
print("除数不能为0!")
else:
print("结果是", result)
divide(2, 5)
divide(2, 0)
运行结果:
结果是 0.4
除数不能为0!
总结
- 循环的
else 子句
则在未运行 break 时执行 - try 的
else 子句
在未触发异常时执行