python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pycharm debug程序,跳转至指定循环条件/循环次数

Pycharm debug程序,跳转至指定循环条件/循环次数问题

作者:HealthScience

这篇文章主要介绍了Pycharm debug程序,跳转至指定循环条件/循环次数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文