在 Python 开发中我们经常会遇到代码逻辑报错、结果不符合预期的问题很多新手习惯用print()打印变量调试但这种方式效率极低还会污染代码。今天给大家分享 Python内置的轻量级调试器 pdb无需安装第三方库开箱即用掌握它就能高效定位代码 bug一、什么是 pdbpdb 是 Python自带的交互式源代码调试器支持设置断点、单步执行、查看 / 修改变量、查看调用栈、条件调试等功能完全满足日常开发的调试需求兼容所有 Python 环境是 Python 开发者必备的基础技能。二、pdb 的两种启动方式方式 1命令行启动推荐无需修改代码插入广告各行各业学习千款源码就上svipm.com.cn直接在终端运行 Python 文件时添加-m pdb参数程序会在第一行代码处暂停进入调试模式bash运行# 语法python -m pdb 你的文件名.py python -m pdb test.py方式 2代码中嵌入断点灵活调试在需要调试的代码位置插入pdb.set_trace()程序运行到这一行会自动暂停进入调试模式python运行# 导入pdb库 import pdb def add(a, b): # 在这里设置断点 pdb.set_trace() return a b result add(10, 20) print(result) Python 3.7 支持更简洁的breakpoint()无需导入 pdb直接写breakpoint()即可三、pdb 核心命令速查表必背进入 pdb 调试模式后终端会显示(Pdb)提示符输入以下命令就能操控程序执行表格命令简写功能说明listl查看当前代码上下文显示当前行前后代码longlistll查看当前函数 / 类的完整代码nextn单步执行不进入函数内部跳过函数调用steps单步执行进入函数内部逐行调试returnr直接执行到当前函数返回continuec继续执行直到下一个断点或程序结束breakb设置断点b 行号/b 函数名clearcl删除断点cl 断点编号printp打印变量值p 变量名pp-格式化打印变量适合列表 / 字典等复杂数据quitq退出 pdb 调试helph查看帮助文档wherew查看当前调用栈四、实战演示用 pdb 调试 bug我们写一个有逻辑错误的代码用 pdb 一步步定位问题1. 待调试代码test.pypython运行def calculate_sum(n): total 0 for i in range(n): # 逻辑错误应该是total i写成了total i total i return total # 预期结果0123410实际结果错误 result calculate_sum(5) print(f计算结果{result})2. 启动调试终端执行命令进入调试模式bash运行python -m pdb test.py3. 调试步骤跟着敲命令输入ll查看完整代码定位函数位置输入b 5在第 5 行循环内设置断点输入c运行到断点处输入p i打印循环变量i的值输入p total打印累计值total发现total没有累加定位到逻辑错误输入q退出调试修复代码。五、常用高级技巧1. 条件断点只在满足特定条件时触发断点适合循环调试python运行# 命令行设置当i3时触发断点 (Pdb) b 5, i32. 动态修改变量调试过程中可以直接修改变量值测试不同场景python运行# 修改变量a的值为100 (Pdb) p a 50 (Pdb) a 1003. 查看函数参数输入args简写a快速查看当前函数的传入参数python运行(Pdb) args a 10, b 20六、pdb vs print 调试为什么推荐 pdb无代码污染无需在代码中插入大量 print调试完无需删除实时交互随时查看、修改变量无需重新运行程序精准定位直接暂停到错误代码行逐行排查逻辑零依赖Python 内置无需安装任何库适配所有环境。七、总结pdb 是 Python 最简单、最实用的调试工具新手只需掌握 **n/s/c/p/q/l这 6 个核心命令 **就能解决 90% 的调试问题。告别低效的 print 调试从今天开始用 pdb 提升你的开发效率 小贴士调试完成后记得删除代码中的pdb.set_trace()或breakpoint()避免程序运行时意外暂停哦总结pdb 是 Python内置调试器零依赖、开箱即用两种启动方式命令行python -m pdb 文件名.py、代码中breakpoint()核心命令n(单步跳过)、s(单步进入)、c(继续)、p(打印变量)、q(退出)适合所有 Python 项目高效替代 print 调试。
Python 调试神器:pdb 调试器零基础入门,告别 print 调试
在 Python 开发中我们经常会遇到代码逻辑报错、结果不符合预期的问题很多新手习惯用print()打印变量调试但这种方式效率极低还会污染代码。今天给大家分享 Python内置的轻量级调试器 pdb无需安装第三方库开箱即用掌握它就能高效定位代码 bug一、什么是 pdbpdb 是 Python自带的交互式源代码调试器支持设置断点、单步执行、查看 / 修改变量、查看调用栈、条件调试等功能完全满足日常开发的调试需求兼容所有 Python 环境是 Python 开发者必备的基础技能。二、pdb 的两种启动方式方式 1命令行启动推荐无需修改代码插入广告各行各业学习千款源码就上svipm.com.cn直接在终端运行 Python 文件时添加-m pdb参数程序会在第一行代码处暂停进入调试模式bash运行# 语法python -m pdb 你的文件名.py python -m pdb test.py方式 2代码中嵌入断点灵活调试在需要调试的代码位置插入pdb.set_trace()程序运行到这一行会自动暂停进入调试模式python运行# 导入pdb库 import pdb def add(a, b): # 在这里设置断点 pdb.set_trace() return a b result add(10, 20) print(result) Python 3.7 支持更简洁的breakpoint()无需导入 pdb直接写breakpoint()即可三、pdb 核心命令速查表必背进入 pdb 调试模式后终端会显示(Pdb)提示符输入以下命令就能操控程序执行表格命令简写功能说明listl查看当前代码上下文显示当前行前后代码longlistll查看当前函数 / 类的完整代码nextn单步执行不进入函数内部跳过函数调用steps单步执行进入函数内部逐行调试returnr直接执行到当前函数返回continuec继续执行直到下一个断点或程序结束breakb设置断点b 行号/b 函数名clearcl删除断点cl 断点编号printp打印变量值p 变量名pp-格式化打印变量适合列表 / 字典等复杂数据quitq退出 pdb 调试helph查看帮助文档wherew查看当前调用栈四、实战演示用 pdb 调试 bug我们写一个有逻辑错误的代码用 pdb 一步步定位问题1. 待调试代码test.pypython运行def calculate_sum(n): total 0 for i in range(n): # 逻辑错误应该是total i写成了total i total i return total # 预期结果0123410实际结果错误 result calculate_sum(5) print(f计算结果{result})2. 启动调试终端执行命令进入调试模式bash运行python -m pdb test.py3. 调试步骤跟着敲命令输入ll查看完整代码定位函数位置输入b 5在第 5 行循环内设置断点输入c运行到断点处输入p i打印循环变量i的值输入p total打印累计值total发现total没有累加定位到逻辑错误输入q退出调试修复代码。五、常用高级技巧1. 条件断点只在满足特定条件时触发断点适合循环调试python运行# 命令行设置当i3时触发断点 (Pdb) b 5, i32. 动态修改变量调试过程中可以直接修改变量值测试不同场景python运行# 修改变量a的值为100 (Pdb) p a 50 (Pdb) a 1003. 查看函数参数输入args简写a快速查看当前函数的传入参数python运行(Pdb) args a 10, b 20六、pdb vs print 调试为什么推荐 pdb无代码污染无需在代码中插入大量 print调试完无需删除实时交互随时查看、修改变量无需重新运行程序精准定位直接暂停到错误代码行逐行排查逻辑零依赖Python 内置无需安装任何库适配所有环境。七、总结pdb 是 Python 最简单、最实用的调试工具新手只需掌握 **n/s/c/p/q/l这 6 个核心命令 **就能解决 90% 的调试问题。告别低效的 print 调试从今天开始用 pdb 提升你的开发效率 小贴士调试完成后记得删除代码中的pdb.set_trace()或breakpoint()避免程序运行时意外暂停哦总结pdb 是 Python内置调试器零依赖、开箱即用两种启动方式命令行python -m pdb 文件名.py、代码中breakpoint()核心命令n(单步跳过)、s(单步进入)、c(继续)、p(打印变量)、q(退出)适合所有 Python 项目高效替代 print 调试。