blog.dopana

Back

欢迎回来,碰撞测试员! 🪖

想象一下你正在骑自行车。如果路上有一个大坑,你可能会摔倒受伤。但是,如果你戴着 安全帽 和护肘,你就可以拍拍身上的灰尘,笑一笑,然后继续骑行!

在 Python 中,当小机器人遇到一个坑(错误的指令)时,它就会摔倒并“崩溃死机”(立刻停止运行,并弹出一堆可怕的红色错误英文)。今天,我们要学会用 try(尝试)和 except(排除)来给机器人戴上安全帽!

安全防护网(错误处理是如何工作的)#

错误处理就像是把容易出状况的指令放进一个带有防护气垫的泡泡里:

  1. try:对机器人说:“试着做这件事,但是要小心喔!”
  2. try 块踩坑报错了,别慌,千万别死机!按我的备用方案来处理。
graph TD
    Start([执行冒险代码]) --> Try{"try: 尝试执行"}
    Try -->|成功| Done([继续运行!没有死机])
    Try -->|踩坑 - 报错| Except{"except: 安全帽接住"}
    Except --> Backup["运行备用代码 (🩹 笑一笑站起来)"]
    Backup --> Done

把香蕉变成数字?(ValueError 值错误)#

还记得我们之前询问玩家年龄并把它转成整数吗?

age = int("香蕉")  # 💥 崩溃死机!Python 无法把文字“香蕉”变成数字。
python

我们用安全帽把这段代码保护起来:

try:
    user_input = input("请输入你的年龄:")
    age = int(user_input)
    print("你今年 " + str(age) + " 岁了! 🎉")
except ValueError:
    print("🩹 哎呀!你输入的不是数字。小机器人稳稳地接住了自己!")
python

如果玩家输入的是文字 "十" 而不是数字 10,机器人也不会死机了!它只会打印出我们准备好的友好提示。

绝对不能除以零(ZeroDivisionError 除零错误)#

在数学里,除以 0 是没有意义且不被允许的。如果你在 Python 里强行除以 0,小机器人会直接崩溃:

try:
    cookies = 10
    kids = 0
    share = cookies / kids
except ZeroDivisionError:
    print("🌌 警告:你不能除以零!不然宇宙就要塌缩了!")
python

机器人不会崩溃,而是会亮起红灯警告,然后继续执行后面的程序。

动手试一试! 🎮#

打开你的 Python 编辑器,试着制作一个“防死机”的除法计算器:

  1. 使用 input() 询问用户一个数字。
  2. try 块里,尝试用 100 除以这个数字。
  3. 写下 except ValueError 块,防范用户输入文字。
  4. 写下 except ZeroDivisionError 块,防范用户输入数字 0
  5. 试着输入文字、数字 0 以及正常的数字,测试你的计算器!

太棒了!你已经把 防崩死机(Crash Protection) 武器加入了你的程序员工具包。现在你写的程序更加强壮和友用了,无论玩家怎么捣乱都不会死机了。继续加油! 🪖💻

参考资料#