本节我们来学些一下程序的调试,有的同学会有疑问,我们运行程序不就可以看调试的结果吗,但是大家需要知道,程序的设计是要有逻辑性的,自上而下的设计结构有利于我们对程序的理解,所以我们保证程序自上而下更有利用于开发,而调试就是帮助我们完成这种设计理念的最佳方式,下面我们学习两种调试方式,一种使用IDLE中自带的调试功能,一种使用assert语句进行调试。
1. 使用IDLE调试
1) 开启调试模式
不知道大家在使用IDLE的时候有没有发现上面的‘Debug’选项,
在‘Debug’选项中又有一个名为‘Debugger’的选项,我们点击一下会出现下图的界面,中间的[DEBUG ON]表示以开启调试状态。
2) 打开或创建一个预调试文件
3) 添加断点
添加方式:右击想要添加的语句,然后在弹出的菜单中选择Set Breakpoint,即添加了相应的断点,如果要清楚断点,相同的方式选择Clear Breakpoint。
断点的作用是程序执行到断点就中断执行,我们可以查看当前状态下的变量等信息。
添加断点之后如下图:
4) 工具按钮及界面
按钮的作用:
Go:执行到断点处。
Step:进入要执行的函数
Over:单步执行
Out:跳出当前函数
Quit:结束按钮
5) 调试方式
我们调试的时候,在程序界面按F5开始,按Go开始执行到第一个断点,我们可以观察变量n的值。
第一次断点的时候,m为5,n为20,再按Go按钮进入下一个断点。
此时n的值发生改变,我们再按一次Go进入下个断点。
n的值再次发生改变,后续无断点,按Go后结束。
6) 关闭界面结束调试
调试完成。
2. 总结
通过IDLE自带的程序调试功能能够帮助我们逐步分析程序中的全局变量,还可以通过行的定位看出当前函数的局部变量,当我们把一个局部变量变成全局变量的时候,也可以通过断点后的测试直接查看到局部变量转换到了全局变量中,这种调试方式还能帮助我们去理解他人的程序,能给我们的学习提供很大的帮助。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程