零基础 Python 调试教程

编程狮(w3cschool.cn) 2025-07-17 15:30:52 浏览数 (85)
反馈

一、为什么要学调试?一句话说明白

写程序 = 搭积木;调试 = 找积木里哪块放歪了。
学会调试,你就能把“报错”翻译成“解决方案”,而不是“玄学”。

二、常用的 4 大调试工具(附代码示例)

工具 说明 何时用 编程狮示例
Traceback(报错堆栈) 错误 GPS,告诉你哪行炸了 运行直接报错 见下方【实战 1】
print() 打印 在代码里插“监控摄像头” 变量值看不见 见下方【实战 2】
断点 breakpoint() 让程序暂停,逐行体检 逻辑复杂不知哪一步出错 见下方【实战 3】
单元测试 写“小考题”防止旧病复发 改代码后担心崩 见下方【实战 4】

三、实战 1:3 步看懂 Traceback(以 NameError 为例)

编程狮在线Python3编辑器 输入:

print(猫咪)          # 故意写错:变量未定义

运行后得到:

Traceback (most recent call last):
  File "/tmp/cat.py", line 1, in <module>
    print(猫咪)
NameError: name '猫咪' is not defined

逐行翻译:

  • File "/tmp/cat.py", line 1 → 第 1 行出错
  • NameError → 错误类型:名字未声明
  • name '猫咪' is not defined → 解释器找不到“猫咪”是谁
    修复
    猫咪 = "橘猫"
    print(猫咪)          # 输出:橘猫

四、实战 2:用 print() 追踪变量

需求:统计一段中文文本里有多少个“快乐”。

text = "我今天很快乐!因为学习编程很快乐~"
words = text.split(",")     # 错误:按逗号切,会把句子切碎
print("调试:当前 words 列表 =", words)  # 插监控
count = 0
for w in words:
    count += w.count("快乐")
print("调试:最终 count =", count)

通过打印发现 words 切错,修复

words = text.replace("!", "").replace("~", "").split()  # 更稳妥

五、实战 3:一行代码加断点,像看电影一样慢放程序

编程狮在线Python3编辑器Trae 里,给可疑行加:

breakpoint()        # Python 3.7+ 内置

示例(文件 fruit.py):

def 首字母大写(水果们):
    结果 = []
    for f in 水果们:
        breakpoint()   # 程序会在这里停
        结果.append(f.capitalize())
    return 结果


print(首字母大写(["apple", "banana", 123]))

运行后进入交互模式,输入:

  • p f 查看当前变量
  • c 继续运行
    这样就能发现 123 不是字符串导致崩溃。

六、实战 4:写单元测试,让 bug 永不复现

编程狮在线Python3编辑器 输入:

from fruit import 首字母大写

 
def test_正常字符串():
    assert 首字母大写(["apple"]) == ["Apple"]

 
def test_数字会被跳过():
    assert 首字母大写(["apple", 123]) == ["Apple", ""]

 
if __name__ == "__main__":
    test_正常字符串()
    test_数字会被跳过()
    print("✅ 全部测试通过!")

运行后若断言失败,会精准提示哪条测试挂了,引导你修复源码

七、高频报错对照表(收藏版)

英文报错 中文翻译 最常见原因 1 行修复示例
SyntaxError: invalid syntax 语法错误 少冒号/括号 if x == 1:
IndentationError 缩进错误 Tab 与空格混用 统一用 4 空格
TypeError: can only concatenate str (not "int") to str 类型错误 字符串+数字 str(num) + "岁"
ModuleNotFoundError 模块不存在 没装库 pip install 包名

八、3 分钟速通调试流程图

graph TD
    A[运行报错] --> B{看 Traceback}
    B -->|定位行号| C[加 print/breakpoint]
    C --> D[修改变量/逻辑]
    D --> E[写测试防复发]
    E --> F[提交代码]

点击查看Mermaid流程图

九、课程推荐

想要系统学习Python请点击《Python零基础到高薪就业

1 人点赞