行者孙Python

御险篇-Day47 else 分支:无异常才执行

📖 知识点

try-except-else 语法

try:
    # 风险代码
except 异常类型:
    # 出错执行
else:
    # ✅ 只有try没有报错,才会执行这里!

执行流程:

  1. try 代码正常运行,没有异常 → 执行 else

  2. 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 实战任务

任务需求:

  1. 定义列表 score_list = [85, 92, 78]

  2. try 中接收用户输入下标,转成整数,取出列表对应分数

  3. except 捕获 IndexError,打印:异常:下标超出列表范围

  4. else 分支:打印查询成功!并输出取出的分数

  5. 测试两组输入: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
异常:下标超出列表范围

🧠 思考题

  1. 把 else 里面的代码直接写在 try 的末尾,和放到 else 里,运行效果一样吗?为什么推荐使用 else?

  2. 如果 try 里面发生异常,else 里面代码会不会执行?

‹ 返回目录
🏠首页 Python 📦资源 👤关于我