Python中可以加断点调试
断点(break point)是指在代码中指定位置,当程序运行到此位置时便中断下来,并让开发者可查看此时各变量的值。
因断点中断的程序并没有结束,可以选择继续执行。
实现断点调试需要 IDE 的支持。下面以 PyCharm 来演示一下
在某一行代码的左侧栏点击,就可以在这行增加断点。现在在 3 个 if 判断的地方都加上断点。
选择 debug,程序开始运行。
输入 a、b 两个值之后,程序就在第一个 if 处中断,并且在工具栏中显示出当前程序中的各种数值。
选择“resume program”,程序就会继续执行,直到遇到下一个断点。
有了断点功能的帮助,调试的时候就方便许多,很容易观察程序运行时的状态。
在断点调试时,还有个经常一起使用的功能就是单步调试。
在程序中断时,选择“Step Over”,会向下执行一行代码后继续中断。
当所处代码行中有函数时,“Step Into”会中断在函数内部,之后将在其中单步执行。对应的,“Step Out”将中断在执行完当前所在函数后的位置。
这些操作在工具栏有快捷按钮,也可通过快捷键操作。
更多Python知识,请关注:Python自学网!!
PyCharm作为IDE,断点调试是必须有的功能。否则,我们还真不如用纯编辑器写的快。
【运行】和【调试】前的设置,详见前面的文章,helloword。
1,设置断点
在代码前面,行号的后面,鼠标单击,就可以设置断点。如下:
2,调试
断点
点击那个绿色的甲虫图标(似乎甲虫已经成为debug专用图标了),进行断点调试。
点击后,会运行到第一个断点。会显示该断点之前的变量信息。
点击Step
Over
或者按F8,我们继续往下运行,到下一个断点:
补充:
断点的其他操作,和功能,大家可以把鼠标移到相应的按钮上,看一下,试试便知。如下:
总结:
这就是PyCharm的断点功能,还是很简单易用的。
就第一次会停下来,其他几次应该都不会停下来的
首先,for循环的条件是只执行一次,也就是并不是每次yield_test()都会运行,这个函数其实拿到的是一个生成器对象,然后你是在遍历这个迭代器,并没有去重新执行函数,直到生成器全部生成完成后就往函数下面去执行,所以只会触发一次生成器的初始化中断,其他不会停下来。不理解可以参考下面的图片: