大部分程序猿都知道,不管是开发新功能还是修复BUG,其实真正写代码的时间是非常少,因为大部分的时间都是消耗在了运行/测试也就是调试(debug)上了,所以掌握快捷高效的调试方法将会让你事半功倍。
PyCharm是由JetBrains公司开发的Python集成开发环境(IDE),凭借其强大的调试功能而广受欢迎。今天将详细介绍PyCharm的调试功能,非常简单又好用。
PyCharm调试功能简介
PyCharm提供了多种强大的调试工具,它让我们能够清楚了解代码每一步是怎么运行的,尤其是对新手或者对熟悉新项目的非常友好和有效。调试(debug)功能其中包含自定义命令、断点设置、调试控制、变量监控、表达式评估、日志点、条件断点
接下来以使用python http库请求百度首页的一个简单脚本来展示调试(debug)功能使用过程。
自定义命令
打开调试(debug)配置,点击“+”创建一个新的调试(debug),或者对一个已经存在的配置进行修改
这个面板支持以下重要的配置修改:
- python环境版本
- 脚本文件路径,每个调试都可以指定不同的脚本
- 脚本参数
- 脚本所运行目录
- 运行脚本时的环境变量,这在本地调试非常方便,可以用于区别线上生产环境
修改完之后,点击应用(apply)和保存(save)来应用这些配置,当你点击调试(debug)时这些面板参数组成一个shell命令进行执行,类似于
python xxxx.py --abc -def 123
设置断点
首先,打开需要调试的Python文件。在代码编辑器中,单击行号旁边的空白区域以设置断点。断点将以红点的形式显示。
启动调试
由于刚刚上面已经面板参数中已经指定了具体的脚本了,所以点击调试(debug)按钮(一个绿色长得像虫子的按钮)就可以开始执行脚本调试了
还一种更快捷的方式启动调试,就是右键单击文件中的代码,然后选择调试文件(Debug ‘filename’)(或通过快捷键Shift + F9)。PyCharm将启动调试会话
使用调试控制选项
一旦程序暂停在断点处,此时PyCharm提供了以下调试控制选项(mac的键位可能有点不一样,以下是window的键位):
继续执行(F9):继续执行代码,直到遇到下一个断点或程序结束,在循环比较多的代码非常好用。
逐步执行(F8):逐行执行代码,并自动进入函数调用,这个在一些复杂的代码里非常好用。
逐步出入函数(Shift + F8):逐步进入或退出函数调用。
逐步进入(F7):逐行执行代码,并进入函数调用。
查看变量和表达式求值
在调试过程中,你可以查看“变量”窗口中的变量值。你还可以在”监视(Watches)“选项卡中添加自定义监视表达式。例子中我们可以清楚看到脚本里每个中间变量如“url”以及一些预测变量如”resp.read().decode(“utf-8”)“。
另外,你可以通过右键单击代码并选择”对表达式求值(Evaluate Expression)“来评估表达式。输入表达式并查看结果。
这个功能可以代替平常临时用print去打印一些脚本中间变量的用法,而且也不会产生忘记删除print留下无用日志之类的后遗症,让自己能更加清晰的看到一些中间变量的数据结构和逻辑处理过程。
设置日志点和条件断点
在调试过程中,你可以通过右键单击断点并选择”编辑(Edit breakpoint)“来设置日志点和条件断点。输入条件表达式或日志消息,然后保存。比如下面这个设置了只有请求为200时才会触发断点,其他情况则会跳过不触发。
四、总结
PyCharm提供了全面而强大的调试工具,使得调试Python代码变得更加容易和高效。通过熟练掌握这些功能,你可以更快地找到代码中的问题并进行修复,提高开发和调试效率。你学会了吗?