代码调试

再牛的程序员也没法一口气把代码全部写正确,通常做法就是写一小段然后验证代码正确性,再继续写下一段,这样能保证代码不会错得太离谱。怎么衡量一小段代码呢?在你觉得这段代码没有十足把握的情况下就应该停下来验证一下。

调试的本质是确认你认为正确的事情确实是正确的,这次来介绍一下 Python 中调试代码的 N 种姿势

print

print 函数使用简单方便,所以开发中我们经常使用它做简单调试,来打印某个值是否是否则预期的。 不过 print 也有不足的地方,如果想打印一个复杂对象,或者是很长的字典、列表等复合对象时,打印的结果堆在一行,很不友好,想看下数据的结构还不容易,例如:
在这里插入图片描述
pprint

好在 Python 内置了另一个打印工具 pprint,全称叫 pretty printer,顾名思义就是加了美颜效果的打印工具,在打印复杂的对象时,以可读的格式输出,当然你还可以自己指定缩进和行的最大宽度,这在遇到复杂对象时非常有帮助,例如:
在这里插入图片描述
prettyprinter

人类对美的追求是没有终点的,虽然 pprint 已经够用了,但是总有人觉得它还不够美,于是有人就在此基础上搞出一个更强大的打印工具叫 prettyprinter, 这是个第三方工具,需要额外安装。你可以看到时间对象更可读,不过我有感觉有点冗余,在Linux环境下还可以变色。项目地址:https://github.com/tommikaikkonen/prettyprinter/tree/master/prettyprinter
在这里插入图片描述
logging

在开发过程中使用 print 调试代码方便又简单,但上线前一定要把这些冗余代码去掉,否则还会影响性能。那么线上某些关键位置想跟踪怎么办,这时 logging 的作用就发挥出来了。很多时候在测试环境不会出现的异常放正式环境就出现了,因为你要面对的各种临界条件,使用 logging 的好处不言而喻,可以设置不同的日志级别,例如 debug、info、error 等级别,你还可以将日志持久化,方便后续做日志追踪。

PDB

PBD 是 Python 的内置模块,是一个真正用于代码调试的,因为你可以在代码运行的时候设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。PDB 在早期还没有集成开发工具IDE的时候,非常有用(现在也使用),只需要一个命令:

python -m pdb test.py

就可以进入调试模块,不喜欢用 IDE 的同学可以考虑使用。

PyCharm

但是现在有更先进的开发工具了,像 PyCharm、PyDev 这样的工具都支持代码调试、打断点、动态修改变量值等等,不仅如此,PyCharm 还支持远程调试。在 Bug 隐藏比较深的情况下,我们有时就会祭上这样的大杀器。

VS Code 是一款非常流行的代码编辑器,它内置了强大的调试功能,可以帮助开发人员方便地调试代码。下面是一些关于在 VS Code 中进行代码调试的步骤: 1. 安装所需的调试扩展:VS Code 支持多种编程语言和框架的调试,你需要在扩展市场中搜索并安装相应的调试扩展。例如,对于 Python 开发,你可以安装 "Python" 扩展。 2. 配置调试器:在 VS Code 中,你需要创建一个调试配置文件以指定调试器的设置。对于大多数语言和框架,你可以使用 VS Code 提供的预设配置。你可以在 VS Code 的左侧导航栏中选择调试视图,然后点击配置按钮来配置调试。 3. 设置断点:在你想要调试代码行上设置断点。断点是一种指示调试器在该行暂停执行的标记。你可以单击编辑器左侧的行号来设置或删除断点。 4. 启动调试:点击 VS Code 调试视图中的启动按钮来开始调试。这将启动你的程序,并在代码执行到断点时暂停。 5. 调试过程中的操作:一旦程序暂停在断点处,你可以使用调试工具栏上的控制按钮来单步执行代码、查看变量值和表达式的结果,以及监视调试器状态。 6. 调试配置的高级设置:如果需要更高级的调试设置,你可以修改调试配置文件。这包括调整调试器的参数、设置环境变量等。 总结起来,VS Code 的代码调试功能非常强大且易于使用。你只需按照上述步骤配置和使用调试器,就能够方便地进行代码调试。希望以上信息能对你有所帮助!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值