小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
一、打断点
一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。注意断点会将对应的代码行标记为红色,取消断点的操作也很简单,在同样位置再次单击即可。
当你将鼠标指针悬停在断点上方时,Pycharm会显示断点的关键信息,行号以及脚本属性,如果你希望更改该断点的属性,右击断点:
可以尝试对断点属性进行个性化更改,然后观察图标的变化。
二、代码调试
(1)PyCharm开始运行,并在断点处暂停
(2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。
(3)Debug tool window窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。
三、调试按钮
1、
show execution point (F10) 显示当前所有断点
2、
step over(F8) 单步调试。若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行
3、
step into(F7) 单步调试。若函数A内存在子函数a时,会进入子函数a内执行单步调试。(会进入python自带模块以及自己编写的模块)
4、
step into my code(Alt + Shift +F7) 执行下一行但忽略libraries(导入库的语句)
5、
force step into(Alt + Shift +F7) 执行下一行忽略lib和构造对象等
6、
step out(Shift+F8)当目前执行在子函数a中时,选择该调试操作可以直接跳出子函数a,而不用继续执行子函数a中的剩余代码。
并返回上一层函数。
7、
run to cursor(Alt +F9) 直接跳到下一个断点。代码执行到光标所在的那行
8、
可以继续任意计算
四、watch窗口
在Watches窗口中,单击加号,输入期望查看的变量名称,然后回车。当变量没被定义时,我们可以在控制台里给它定义,也可以通过执行下一步,利用代码中的赋值来定义。
五、Console窗口:这里可以直接编译python代码,执行一些python命令。
六、注意
可能有时候debug并不能正常进行,控制台会输出如下信息:
程序本身应该没有错误,就是不能正常debug。
下面记录几种解决方式:
1、关闭Pycharm,删除工程目录下的.idea文件夹并重启。
2、删除所有的断点。可以点击下图所示的两个叠在一起的红色原点进行操作。
3、点击Pycharm的File>>Invalidate Caches / Restart…,然后选择Invalidate and Restart。这个操作清空了项目中的缓存信息。
4、重建整个工程并重新配置。
这四种方法可能会解决这个问题,我试了第三种,然后第二种应该也是可以的,第一种和第四种小心尝试。