使用IDLE调试器调试Python程序

  • 推荐自己的专栏:分享一些Python案例,将所学用出来
  • 分析定位程序错误是程序设计最基本的功能。
  • Python标准库的调试器pdb提供了基本的调试功能:设置断点、查看变量等。

集成开发环境 (IDE,例如IDLE、Spyder、 PyCharm) 则提供了更直接方便的调试器。


本案例,阐述使用IDLE调试器跟踪调试Python程序的基本方法。

示例程序(test.py,模拟倒计时)

一个简单的递归函数小程序

import time

def countdown(n):
    """从n倒计数到0"""
    if n <= 0:
        print("时间到!")
    else:
        time.sleep(1) # 睡眠1秒钟
        print(n)
        countdown(n-1)

if __name__ == '__main__':
    countdown(3)

程序正常运行结果如下:

3
2
1
时间到!

使用IDLE调试器调试运行程序

使用IDLE调试器调试运行程序示例程序test.py。

  1. 运行IDLE并打开程序源代码test. py。

  2. 设置断点。在想要调试的语句上,通过鼠标右键快捷菜单[SetBreakpoint]设置断点,设置了断点的代码行底色为黄色,如下图所示。也可以通过[Clear Breakpoint] 清除已经设置的断点。
    使用IDLE调试器调试Python程序_第1张图片

  3. 打开调试器。在IDLE窗口,运行程序(按快捷键[F5] 或者点击[Run] | [Run Module])。

    在弹出的Python解释器命令行窗口,

    通过执行菜单命令[Debug] | [Debugger] ,打开调试器窗口,
    使用IDLE调试器调试Python程序_第2张图片
    请确保[Debugger]菜单处于选中状态,此时Python解释器命令行窗口显示[DEBUG ON]。在调试器[Debug Control] 窗口,选中Source和Globals复选框。
    使用IDLE调试器调试Python程序_第3张图片使用IDLE调试器调试Python程序_第4张图片

  4. 调试运行程序。在IDLE窗口,运行程序(按快捷键[F5] 或者点击[Run] | [Run Module])。程序在代码的第一行中断暂停。 底色为灰色的代码为当前执行代码行。
    使用IDLE调试器调试Python程序_第5张图片
    用户可以通过[Debug Control] 窗口查看程序运行状态(调用堆栈Stack、局部变量Locals、全局变量Globals),执行下一步调试命令。
    使用IDLE调试器调试Python程序_第6张图片

  5. 在[Debug Control] 窗口中单击运行调试命令[Go],使程序运行到下一个断点处中断暂停。

  6. 查看程序运行状态。查看局部变量Locals和全局变量Globals。 此时n为3。
    使用IDLE调试器调试Python程序_第7张图片

  7. 在[Debug Control] 窗口中单击运行调试命令 [Over],单步执行命令。由于n为3,故程序跳转到else后的第一条语句。
    使用IDLE调试器调试Python程序_第8张图片

  8. 继续执行其它调试命令。(注: 运行调试命令 [Go] 执行到下一个断点[Step] 进入函数[Over]单步执行[Out]跳出函数[Quit]退出结束调试)。

你可能感兴趣的:(#,python案例)