本节我们来学些一下程序的调试,有的同学会有疑问,我们运行程序不就可以看调试的结果吗,但是大家需要知道,程序的设计是要有逻辑性的,自上而下的设计结构有利于我们对程序的理解,所以我们保证程序自上而下更有利用于开发,而调试就是帮助我们完成这种设计理念的最佳方式,下面我们学习两种调试方式,一种使用IDLE中自带的调试功能,一种使用assert语句进行调试。
不知道大家在使用IDLE的时候有没有发现上面的‘Debug’选项,
在‘Debug’选项中又有一个名为‘Debugger’的选项,我们点击一下会出现下图的界面,中间的[DEBUG ON]表示以开启调试状态。
添加方式:右击想要添加的语句,然后在弹出的菜单中选择Set Breakpoint,即添加了相应的断点,如果要清楚断点,相同的方式选择Clear Breakpoint。
断点的作用是程序执行到断点就中断执行,我们可以查看当前状态下的变量等信息。
添加断点之后如下图:
按钮的作用:
Go:执行到断点处。
Step:进入要执行的函数
Over:单步执行
Out:跳出当前函数
Quit:结束按钮
我们调试的时候,在程序界面按F5开始,按Go开始执行到第一个断点,我们可以观察变量n的值。
第一次断点的时候,m为5,n为20,再按Go按钮进入下一个断点。
此时n的值发生改变,我们再按一次Go进入下个断点。
n的值再次发生改变,后续无断点,按Go后结束。
调试完成。
通过IDLE自带的程序调试功能能够帮助我们逐步分析程序中的全局变量,还可以通过行的定位看出当前函数的局部变量,当我们把一个局部变量变成全局变量的时候,也可以通过断点后的测试直接查看到局部变量转换到了全局变量中,这种调试方式还能帮助我们去理解他人的程序,能给我们的学习提供很大的帮助。