Skip to content

在 Python 中调试代码可以通过多种方法实现,以下是常用的调试方式和工具,分步说明:


1. 使用 print() 输出调试

最简单直接的方法,通过打印变量值或程序执行路径来定位问题。

python
def calculate(a, b):
    print("输入参数:", a, b)  # 调试输出
    result = a + b
    print("计算结果:", result)  # 检查结果
    return result

适用场景:快速检查简单逻辑,但代码量大时可能混乱。


2. 使用 logging 模块

print 更规范的日志记录,支持不同级别(DEBUG、INFO、WARNING 等)。

python
import logging
logging.basicConfig(level=logging.DEBUG)  # 设置日志级别

def calculate(a, b):
    logging.debug(f"输入参数: {a}, {b}")
    result = a + b
    logging.info(f"计算结果: {result}")
    return result

优点:可控制输出级别,长期维护更方便。


3. 使用内置调试器 pdb

Python 自带的命令行调试工具,支持断点设置和逐行执行。

# 方法 1:在代码中插入断点

python
def calculate(a, b):
    import pdb; pdb.set_trace()  # 插入断点
    result = a + b
    return result

运行代码时,程序会在 pdb.set_trace() 处暂停,进入调试模式。

# 方法 2:命令行启动 pdb

bash
python -m pdb your_script.py  # 从第一行开始调试

# 常用 pdb 命令

  • n (next):执行下一行。
  • s (step):进入函数内部。
  • c (continue):继续执行到下一个断点。
  • l (list):查看当前代码上下文。
  • p <变量> (print):打印变量值。
  • q (quit):退出调试。

4. 使用 IDE 的图形化调试工具

主流 IDE(如 PyCharm、VS Code)提供直观的调试界面,支持断点、变量监控和逐行执行。

# VS Code 调试步骤

  1. 在代码左侧单击设置断点。
  2. F5 启动调试。
  3. 使用调试工具栏控制执行(继续、单步跳过、进入函数等)。
  4. VARIABLES 面板查看变量值。

5. 使用 traceback 分析异常

当程序崩溃时,traceback 模块可打印详细的错误堆栈信息。

python
import traceback

try:
    # 可能出错的代码
    1 / 0
except Exception as e:
    traceback.print_exc()  # 打印完整错误信息

6. 高级工具:ipdbpdb++

第三方调试器(如 ipdb)提供更友好的交互式体验(类似 IPython)。

bash
pip install ipdb

在代码中插入:

python
import ipdb; ipdb.set_trace()

支持自动补全、语法高亮等增强功能。


7. 调试常见场景

  • 变量值异常:使用 p <变量> 或断点检查。
  • 逻辑错误:逐行执行观察流程。
  • 循环问题:检查循环条件或迭代变量。
  • 异常捕获:结合 try-excepttraceback 定位错误位置。

总结

  • 快速调试print()logging
  • 复杂问题pdb 或 IDE 调试器。
  • 长期维护:使用 logging 记录关键信息。
  • 错误分析traceback 或 IDE 的异常捕获功能。

通过结合这些工具,可以高效定位和修复 Python 代码中的问题。