当前位置:首页>python>小学生Python:异常处理 —— 让程序遇错不崩溃

小学生Python:异常处理 —— 让程序遇错不崩溃

  • 2026-09-09 06:57:18
小学生Python:异常处理 —— 让程序遇错不崩溃

你有没有遇到过这种情况:程序运行到一半,突然崩溃了,报了一堆红色错误?今天,我们来学 —— 异常处理,让程序遇到错误时不崩溃,而是优雅地告诉用户「出了点小问题」!

一、什么是异常?

异常就是程序运行时遇到的「意外情况」。比如:

print(10 / 0)       # 除以零!
int("abc")          # 字符串转数字失败!
open("不存在.txt")  # 文件不存在!
ZeroDivisionError: division by zero
ValueError: invalid literal for int() with base 10: 'abc'
FileNotFoundError: No such file or directory

这些都是「异常」,不处理的话程序直接崩溃。

二、try / except —— 捕获异常

用 try 包住「可能出错的代码」,用 except 处理出错的情况:

try:
    result = 10 / 0
except:
    print("出错了,不能除以零!")
出错了,不能除以零!

程序不崩溃了,而是打印了提示信息。

三、捕获具体的异常类型

try:
    num = int(input("请输入一个数字:"))
    print(10 / num)
except ValueError:
    print("输入的不是数字!")
except ZeroDivisionError:
    print("不能除以零!")
# 输入 "abc":输入的不是数字!
# 输入 "0":不能除以零!
# 输入 "2":5.0

四、else 和 finally

try:
    num = int(input("请输入数字:"))
    result = 10 / num
except ValueError:
    print("不是数字!")
except ZeroDivisionError:
    print("不能除以零!")
else:
    print(f"结果是:{result}")   # 没有异常时执行
finally:
    print("程序结束")            # 无论如何都执行
# 输入 "2":
结果是:5.0
程序结束

五、常见异常类型

异常名触发原因
ValueError值类型不对,如 int("abc")
ZeroDivisionError除以零
FileNotFoundError文件不存在
IndexError列表下标越界
KeyError字典键不存在

六、实战:健壮的成绩录入系统

def input_score(name):
    while True:
        try:
            score = int(input(f"请输入{name}的成绩(0-100):"))
            if score < 0 or score > 100:
                print("成绩必须在0到100之间!")
                continue
            return score
        except ValueError:
            print("请输入数字,不要输入文字!")

def save_score(name, score):
    try:
        with open("scores.txt", "a") as f:
            f.write(f"{name}:{score}\n")
        print(f"✅ {name}的成绩已保存!")
    except Exception as e:
        print(f"保存失败:{e}")

# 使用
name = input("请输入学生姓名:")
score = input_score(name)
save_score(name, score)
请输入学生姓名:小明
请输入小明的成绩(0-100):abc
请输入数字,不要输入文字!
请输入小明的成绩(0-100):150
成绩必须在0到100之间!
请输入小明的成绩(0-100):95
✅ 小明的成绩已保存!

七、练习题

练习1:安全地读取文件

try:
    with open("data.txt", "r") as f:
        print(f.read())
except FileNotFoundError:
    print("文件不存在,请先创建文件!")

练习2:安全的列表访问

fruits = ["苹果", "香蕉", "橘子"]
try:
    print(fruits[10])
except IndexError:
    print("下标越界了,列表没有这么多元素!")

八、今天学到了什么?

  1. 异常是程序运行时的「意外情况」
  2. try / except:捕获并处理异常
  3. else:没有异常时执行
  4. finally:无论如何都执行
  5. 常见异常:ValueError、ZeroDivisionError、FileNotFoundError

九、下期预告

学会了异常处理,下节课我们来学 —— 面向对象,用「类」来描述现实世界的事物!

敬请期待:《小学生Python:面向对象 —— 用代码描述世界》

喜欢这篇文章吗?点个「在看」,让更多小朋友学会写健壮的 Python 程序!

最新文章

随机文章