给程序"看病",找出并修复 Bug 的侦探过程
程序里的问题或缺陷,就像菜里的虫子
找出 Bug 并修复的过程
像侦探一样找线索,缩小范围
想象你是一个侦探,你的程序就是"案发现场":
还有一个更日常的比喻:你照着菜谱做蛋糕,烤出来发现塌了。怎么办?你回头检查每一步——是不是面粉放多了?温度太高了?忘记放泡打粉了?这个"回头找问题"的过程就是调试!
程序出错的原因各不相同,了解它们的区别能帮你更快找到问题:
就像写错别字,电脑看不懂你写的代码。比如把 print 写成了 prnt。
代码看起来没问题,但跑到一半突然出事了。比如让电脑算 10 ÷ 0。
难度:中等程序能跑完也不报错,但结果就是不对!这种 Bug 最狡猾,最难找。
难度:困难来看一个有 Bug 的程序,然后一步步把它修好:
# ❌ 有 Bug 的程序:算 1+2+3+4+5 total = 0 # Bug 在这里!range(1, 5) 只会产生 1,2,3,4,少了 5 for i in range(1, 5): total = total + i print("答案是:", total) # 显示 10,但正确答案是 15!
# 🔍 调试过程:加 print 看看每一步 total = 0 for i in range(1, 5): print("现在 i =", i) # 看看 i 到底有哪些值 total = total + i # 输出:i = 1, 2, 3, 4 → 发现少了 5!
# ✅ 修复后的程序 total = 0 for i in range(1, 6): # 改成 range(1, 6) 就对了 total = total + i print("修复后答案是:", total) # 显示 15,破案了!🎉
range(1, 5) 只生成 1 到 4,不包括 5!改成 range(1, 6) 才能得到 1 到 5。
程序员调试的时候有这些常用方法:
在代码里加上打印语句,看看每一步的值对不对。就像在每个路口都装一个监控摄像头,看看到底哪里出了问题。
电脑报错时会告诉你在第几行出了什么问题。一定要仔细读错误信息,它会告诉你问题在哪里!
把问题一步步讲给桌上的橡皮鸭(或任何玩具)听。讲着讲着,你往往就突然明白 Bug 在哪里了!因为说出来能帮你理清思路。
| 关键词 | 含义 | 比喻 |
|---|---|---|
| Bug | 程序中的错误或缺陷 | 🐛 菜里的虫子 |
| 调试 (Debug) | 找出并修复 Bug 的过程 | 🕵️ 侦探破案 |
| 语法错误 | 代码拼写不对,电脑看不懂 | 📝 写错别字 |
| 运行错误 | 代码跑到一半突然崩溃 | 💥 半路翻车 |
| 逻辑错误 | 能跑但结果不对,最难找 | 🤔 答案被偷换 |
| print 调试法 | 加打印语句查看每步的值 | 📹 装监控摄像头 |