Pycharm 中Debug使用方法简介

        通常在用Python写一个项目时80%的时间是在调试代码,学会如何Debug能够帮你快速定位问题在哪及拿出解决方案,因此学会Debug能够让你事半功倍。下面就使用Pycharm Debug功能做些简单介绍。

1 设置断点

        如下图,在pycahrm的界面中写了Pycharm_debug_test.py文件,在某处代码行(你需要停顿的位置)只要用鼠标点击图中的位置,出现一个红点,那么debug就会停顿在这,再次对着红点鼠标点击一下,红点会消失。需要停顿的位置可根据自己的调试需求自行更改。

图1 设置断点

2 开始调试

按照图2的操作进入debug,程序下方弹出图2 b) 的界面。

图2 a) 进入debug

图2 b) 进入debug

根据图3 发现前面两行已经运行完,相应的变量已经在debug的界面显示,程序停在了第3行。

参考图片

图3 debug界面

3 Debug调试(核心)

这一步是调试的精髓。通常程序出bug是因为变量的类型不对,导致出现问题,但又不知道哪出现问题,下面这一步可以让你在debug中交互,做些运算,了解类型等操作。

按照图4的点击顺序进入debug交互界面。Console -> Show Debug Console, 界面出现In[2]:,我们就可以在里面做运算啦。

图4 debug交互界面

笔者做了如下运算,了解b的类型,b与c做了乘法,发现都能Out正确的值。

图5 Debug 交互界面

当然,以上的debug交互所用到的变量只能用到第3行之前的变量,因为debug停在了第3行(注意第3行没有运行),见图6输出a会报错

图6 输出a

那如何进行下一步呢,我们看到debug界面还有如图7的5个小图标

图8 Step Over

Step Over :进行debug到下一行,步进,只能一步一步的到下一行。

图9 Step Into

Step Into:进入函数里面

图10 Step Into My Code

Step Into My Code:调试过程中想跟着代码一步步走下去,可以一只按F7(Step Into),有时就会调到源代码里去执行,此时通过Step Into My Code可以让debug回到自己的代码并继续向下执行。(相当于跳过函数包,因为函数包都是打包好的,可以正常放心使用的代码)

图11 Step Out

Step Out: 跳出函数

图12 Run to Cursor

Run to Cursor:不步进,直接跳到下一个最近的红点(游标),即你设置的下一个的断点

我的理解:从一个断点跳到下一个断点,是调试者可以大致判断代码出现问题的地方在两个断点之间的这块“区间”,从而可以提高dug的效率。

4 小节
调试方式总结见下表

调试方式快捷键意义
Step OverF8调试一行代码,不进入子函数;如果没有子函数,功能与Step Into一样
Step IntoF7单步执行,进入子函数
Step Into My CodeAlt + Shift + F7调试过程中想跟着代码一步步走下去,可以一只按F7(Step Into),有时就会调到源代码里去执行,此时通过Step Into My Code可以让debug回到自己的代码并继续向下执行
Step OutShift + F8运行断点后面所有代码;当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数
Run to CursorAlt + F9一直执行,直到光标处停止;用在循环内部时,点击一次就执行一个循环

PS:

我的理解:使用debug进行调试,目的就是如何快速排查问题。如果上百行的代码出现bug,但不知道问题在哪,这时候可以使用debug进行调试,使用二分法,快速缩小问题所在范围,可以快速找到问题所在。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: Pycharmdebug使用技巧包括以下几点。首先,在代码所在行号处左击鼠标,就会设置一个行断点。然后,点击Pycharm右上角的小虫子图标按钮,就会以Debug的方式运行代码。\[2\]在Debug工作界面,可以使用菜单按钮来进行不同的操作。\[3\]例如,使用Shift + F9可以进入上一个被执行程序的debug使用Alt + Shift + F9可以进入当前程序的debug。在debug过程,常用的功能与快捷键包括:使用F8进行step over,遇到断点后程序停止运行,按F8单步运行;使用F7进行step into,配合F8使用,如果执行到有函数的代码行,按F7进入函数内部;使用Alt+shift+F7进行step into mycode,如果遇到函数会自动进入函数内部;使用shift + F8进行step out,按F7进入函数内部后,会跳出当前函数返回上一层级继续往下执行;使用Ctrl + Shift + F8进行Quick Evaluate Expression,可以快速计算表达式,查看当前判断的布尔值。 #### 引用[.reference_title] - *1* *2* [最全的Pycharm debug技巧](https://blog.csdn.net/stay_foolish12/article/details/123677944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Pycharmdebug技巧](https://blog.csdn.net/zhaoqi_01/article/details/98718113)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值