使用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] 清除已经设置的断点。

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

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

    通过执行菜单命令[Debug] | [Debugger] ,打开调试器窗口,

    请确保[Debugger]菜单处于选中状态,此时Python解释器命令行窗口显示[DEBUG ON]。在调试器[Debug Control] 窗口,选中Source和Globals复选框。

  4. 调试运行程序。在IDLE窗口,运行程序(按快捷键[F5] 或者点击[Run] | [Run Module])。程序在代码的第一行中断暂停。 底色为灰色的代码为当前执行代码行。

    用户可以通过[Debug Control] 窗口查看程序运行状态(调用堆栈Stack、局部变量Locals、全局变量Globals),执行下一步调试命令。

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

  6. 查看程序运行状态。查看局部变量Locals和全局变量Globals。 此时n为3。

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

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


参考资料:

发布了154 篇原创文章 · 获赞 284 · 访问量 16万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览