分享

Python案例分析|使用调试器调试Python程序

 新用户62659642 2023-07-28 发布于湖南
图片

本案例通过一个示例程序的调试,帮助读者了解使用Python调试器调试程序的方法。可以对应于教程正文的第7章。

分析定位程序错误是程序设计最基本的功能。Python标准库的调试器pdb提供了基本的调试功能:设置断点、查看变量等。

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

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

01

示例程序

本节采用的示例程序为一个简单的递归函数小程序。程序模拟倒计时,实现代码如下。

【例CS7.1】倒计时小程序countdown.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

时间到!!!

02

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

【例CS7.2】使用IDLE调试器调试运行程序示例程序countdown.py。

(1)运行IDLE并打开程序源代码countdown.py。

(2)设置断点。在想要调试的语句上,通过鼠标右键快捷菜单【Set Breakpoint】设置断点,设置了断点的代码行底色为黄色,如图CS7-1所示。也可以通过【Clear Breakpoint】清除已经设置的断点。

图片

■ 图CS7-1  设置断点

(3)打开调试器。在IDLE窗口,按快捷键【F5】,程序开始运行。在弹出的Python解释器命令行窗口,通过执行菜单命令【Debug】|【Debugger】,打开调试器窗口,如图CS7-2所示。

图片

■ 图CS7-2  打开调试器窗口

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

图片

■ 图CS7-3  选中Source和Globals复选框

(4)调试运行程序。在IDLE窗口,按快捷键【F5】,程序开始运行。程序在代码的第一行中断暂停。如图CS7-4所示,底色为灰色的代码为当前执行代码行。

图片

■ 图CS7-4  底色为灰色的代码为当前执行代码行

用户可以通过【Debug Control】窗口查看程序运行状态(调用堆栈Stack、局部变量Locals、全局变量Globals),执行下一步调试命令。如图CS7-5所示。

图片

■ 图CS7-5  通过【Debug Control】窗口查看程序运行状态

(5)在【Debug Control】窗口中单击运行调试命令【Go】,使程序运行到下一个断点处中断暂停。如图CS7-6所示。

图片

■ 图CS7-6  在【Debug Control】窗口中使程序运行到下一个断点处中断暂停

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

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

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



03

参考书籍

图片

《Python程序设计与算法基础教程(第3版·项目实训·题库·微课视频版)》

ISBN:9787302623816

作者:江红、余青松

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多