📖 知识点
try-except-else 语法
try:
# 风险代码
except 异常类型:
# 出错执行
else:
# ✅ 只有try没有报错,才会执行这里!执行流程:
try 代码正常运行,没有异常 → 执行 else
try 代码抛出异常 → 直接跳去 except,else 不会运行
💡 最佳实践:不要把所有代码全部塞进 try 块。只把可能报错的代码放 try;依赖 try 成功后才能执行的代码,放到 else,逻辑更清晰。
基础示例
try:
num = int(input("输入数字:"))
except ValueError:
print("输入不是数字!")
else:
print(f"转换成功!数字的两倍是:{num * 2}")输入
10,无报错 → 进入 else,打印两倍计算结果输入
abc,触发 ValueError → 走 except,else 跳过
⚔️ Kata 实战任务
任务需求:
定义列表
score_list = [85, 92, 78]try 中接收用户输入下标,转成整数,取出列表对应分数
except 捕获 IndexError,打印:
异常:下标超出列表范围else 分支:打印
查询成功!并输出取出的分数测试两组输入:
1(正常),10(越界报错)
参考代码
score_list = [85, 92, 78]
try:
idx = int(input("请输入查询下标:"))
res = score_list[idx]
except IndexError:
print("异常:下标超出列表范围")
else:
print("查询成功!")
print(f"对应分数:{res}")测试示例 1:输入1
请输入查询下标:1
查询成功!
对应分数:92测试示例 2:输入10
请输入查询下标:10
异常:下标超出列表范围🧠 思考题
把 else 里面的代码直接写在 try 的末尾,和放到 else 里,运行效果一样吗?为什么推荐使用 else?
如果 try 里面发生异常,else 里面代码会不会执行?