在程序开发过程中,免不了会出现一些错误,既有语法方面的,也有逻辑方面的。语法方面的相对比较好检测,因为当程序中有语法错误时,程序运行会直接停止,同时 Python 解释器会给出错误提示。而对于逻辑错误,可能并不太容易发现,因为程序本身运行没有问题,只是运行结果是错误的。
当遇到程序有逻辑错误时,最好的解决方法就是对程序进行调试,即通过观察程序的运行过程,以及运行过程中变量(局部变量和全局变量)值的变化,可以快速找到引起运行结果异常的根本原因,从而解决逻辑错误。
掌握一定的程序调试方法,是每一名合适的程序员的必备技能。多数的集成开发工具都提供了程序调试功能,本教程中使用的 IDLE 也不例外。本节将给大家演示如何使用 IDLE 调试 Python 程序。
在保证程序没有语法错误的前提下,使用 IDLE 调试程序的基本步骤如下:
- 打开 Python Shell,在主菜单上选择“Debug -> Debugger”选项,打开 Debug Control 对话框,同时 Python Shell 窗口中会显示“[DEBUG ON]”,表示已经处于调试状态,如图 1 所示:
图 1 处于调试状态的 Python Shell
- 在 Python Shell 窗口中,选择“File -> Open”菜单项,打开要调试的程序文件,并向程序中的代码添加断点,其作用是:当程序执行至断点位置时,会暂时中断执行。根据需要,程序还可以恢复执行。
向程序中添加断点,不能胡乱地添加,要有目的的添加。一般情况下,当想要查看某个变量运行至某处代码的值,就可以在该代码位置添加一个断点。
程序中添加断点的方法是:在想要添加断点的行上,点击鼠标右键,在弹出的快捷菜单中选择“Set BreakPoint”菜单项,添加断点的代码行,其背景会变成黄色,如图 2 所示。
图 2 给代码添加断点
同样,如果想删除已添加的断点,可以选中已添加断点的行,然后点击鼠标右键,选择“Clear Breakpoint”。
- 添加完断点之后,可以按 F5 快捷键,或者在打开的程序文件菜单栏中选择“Run -> Run Module”执行程序,这时 Debug Control 对话框中将显示程序的执行信息。如图 3 所示。
图 3 显示程序的执行信息
需要注意的是,勾选 Globals 复选框,将显示全局变量,Debug Control默认只显示局部变量。
- 图 3 中,调试工具栏中的 5 个按钮的作用分别是:
- Go 按钮:直接运行至下一个断点处;
- Step 按钮:用于进入要执行的函数;
- Over 按钮:表示单步执行;
- Out 按钮:表示跳出当前运行的函数;
- Quit 按钮:表示结束调试。
通过使用这 5 个按钮,可以查看程序执行过程中各个变量值的变化,直至程序运行结束。程序调试完毕后,可以关闭 Debug Control 窗口,此时在 Python Shell 窗口中将显示 “[DEBUG OFF]”,表示已经结束调试。