Pycharm debug程序,跳转至指定循环条件/循环次数问题
作者:HealthScience
Pycharm debug程序,跳转至指定循环条件/循环次数
在断点出右键,然后设置条件
示例
for i in range(1,100): a = i + 1 b = i + 2 print(a, b, i)
注意:
1、你应该debug断点在循环后的位置而不是循环上的位置,然后你就可以设置你的条件进入到指定的循环上了
2、设置条件,要使用等于符号“==”而不是赋值符号“=”
3、在设置断点条件的位置,条件应该是出现过的变量,
例如下面设置“a==15”是正确的、“b==15”就是错误的,因为b在这一行运行之前还没有出现
在运行过程中设置条件,从而直接运行到这次的条件循环,而不需要重新debug
例如此时你设置了断点,但是没有设置断点条件,此时i=1是第一次循环
此时你想调到第15次循环,也就是条件“I==15”,那么你不需要重新debug,而只需要在本次运行中设置循环条件,然后直接“Step out”就可以了【Shift + F8】
成功进入第15次循环:
Pycharm中Debug的高级技巧
1.断点条件调试
有这样一个场景,代码 DeBug 的时候,我想知道下面代码 index 为 10 时, date_1的值是什么,正常来说要 代码 DeBug 循环 10 次,很不方便。
在 IDE 中有个条件断点,只需设置好变量条件,只有当某个变量等于你设置的条件的值时,断点就会自动停下。
首先右击第 24 行的断点,给 Conditon 设置变量条件 index == 10,并点击 Done 保存设置。
当 index 的值为 10 时,DeBug 就会自动停下,效果如下图
2.计算表达式
当我们 Debug 某个方法时,有时候会忘了传入某个参数或者传错了,这个时候又不想重新Debug,
就可以通过计算表达式来设置某个变量的值,如下图,发现 day_int = 367 不是期望的值,可以鼠标右击下面蓝色的 day_int , 选择 Set Value
, 对 day_int 临时修改值
下面的代码程序会根据重新赋的值向下运行,可以看到变量 num_30 的值是 200 整除 30 的结果。
3.调试神器 pdb
准备文件
在调试之前先将这两个文件准备好(做为演示用),并放在同级目录中。
utils.py
def sum(mylist): result = 0 for item in mylist: result += item return result
- pdb_demo.py
import utils def myfunc(mylist): result = utils.sum(mylist) print(result) if __name__ == '__main__': print("----start----") myfunc([1,2,3,4]) print("----end-----")
输出:
----start----
10
----end----
进入调试模式 (主要有两种方法)
做为脚本调用,方法很简单,就像正常执行python脚本一样,只是多加了-m pdb
ptyhon -m pdb pdb_demo.py
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。