print()输出变量值或执行流程(如print(f"Variable x: {x}")),适合快速定位问题,但需手动删除或注释调试代码。assert condition, "Error message"检查代码假设(如assert b != 0, "Division by zero"),若条件为假则抛出AssertionError,帮助捕获错误逻辑。print更灵活的日志记录工具,可设置不同级别(DEBUG、INFO、WARNING等),将日志输出到文件或控制台。示例:import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug("Debug message") # 记录调试信息
适合大型项目或长期运行的程序。Python自带的命令行调试工具,无需额外安装,在代码中插入import pdb; pdb.set_trace()启动调试。常用命令:
n(next):执行下一行代码;s(step):进入函数调用;c(continue):继续执行至下一个断点;p <variable>(print):打印变量值;l(list):显示当前代码上下文;q(quit):退出调试。pip install ipdb,使用方式与pdb一致(替换pdb.set_trace()为ipdb.set_trace())。pip install pdbpp,使用方式与pdb相同(导入pdbpp替代pdb)。ic()函数打印变量名和值(如ic(add(10, 20))输出ic| add(10, 20): 30)。安装:pip install icecream,适合快速查看变量状态。print。安装:pip install pysnooper,使用示例:import pysnooper
@pysnooper.snoop()
def my_function():
x = 10
y = 20
return x + y
运行后会输出变量的赋值过程。.vscode/launch.json文件,添加配置:{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
F5启动调试,支持单步执行、变量监视、调用栈查看。Run > Debug启动调试。以上方法覆盖了从基础到高级的调试需求,可根据项目规模、复杂度选择合适的工具(如小型项目用print+pdb,大型项目用VS Code/PyCharm+logging)。