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

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


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

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

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

import timedef 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]退出结束调试)。

使用IDLE调试器调试Python程序相关推荐

  1. 谷歌调试器调试的js_时辰?? “时间旅行”调试器

    谷歌调试器调试的js Chronon是一个新的"时空旅行"调试器. Chronon包含一个"飞行数据记录器",该记录器记录程序内部执行的代码行,并将其保存到文件 ...

  2. 使用GDB命令行调试器调试C/C++程序

    编译自:http://xmodulo.com/gdb-command-line-debugger.html 作者: Adrien Brochard 原创:LCTT https://linux.cn/a ...

  3. Linux 内核调试器 调试指南

    Linux 内核调试器内幕 KDB 入门指南 Hariprasad Nellitheertha (nharipra@in.ibm.com), 软件工程师, IBM 简介: 调试内核问题时,能够跟踪内核 ...

  4. 【转】无调试器调试--使用调试宏

    转自:https://www.hahack.com/wiki/tools-makefile.html# 调试器的出现固然极大地改善了可怜的程序员们的生活水平,然而调试器也并不总是扮演救世主的角色,例如 ...

  5. python IDLE 的调试器

    "调试器"是 IDLE 的一项功能,让你每次执行一行程序.调试器将运行一行代码,然后等待你告诉它继续.像这样让程序运行"在调试器之下",你可以随便花多少时间,检 ...

  6. python的调试器_玩转Python调试器

    如果你还只会使用print来定位python程序问题,那这篇文章就是为你写的,这篇文章将带你入门python调试器.python标准库提供了一个叫pdb的调试器,它提供了调试所需的绝大多数常用功能,比 ...

  7. pdb—Python调试器

    pdb-Python调试器 在python 3.8文档 Python 常用指引中已经详细介绍了pdb模块,此处为引用官方文档 该模块pdb为Python程序定义了一个交互式源代码调试器.它支持在源代码 ...

  8. python文档测试_【Python入门】19.调试器pdb、单元测试unittest和文档测试doctest

    笔记更新于2019年12月4日, 摘要:各种调试方法介绍assert.logging.调试器pdb:单元测试unittest的编写方法.如何运行单元测试:文档测试doctest的编写 写在前面:为了更 ...

  9. 如何调试Python程序(pdb使用手册)

    调试程序对于开发人员是一项非常重要的技能,它使得我们能够查看程序的运行过程,帮助我们准确的定位程序中的错误. 然而,令人意外的是,无数的Python工程师居然不知道如何对Python代码进行单步调试, ...

最新文章

  1. POJ 3613 快速幂+Floyd变形(求限制k条路径的最短路)
  2. 奥托尼克斯接近开关型号_12月23日NBA | 骑士VS老鹰、尼克斯VS奇才、开拓者VS鹈鹕...
  3. 重磅开源!目标检测新网络 DetectoRS:54.7 AP,特征金字塔与空洞卷积的完美结合
  4. P1032 字串变换
  5. android使用perfetto工具步骤
  6. memcache java client_Memcache的客户端连接系列(一) Java
  7. 诗与远方:无题(三十五)- 曾经写给妹子的一首诗
  8. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
  9. php框架加滑动条,IOS_iOS实现双向滑动条效果,最近做项目,碰到一种双向滑 - phpStudy...
  10. 用python解算法谜题_【编程的乐趣-用python解算法谜题系列】谜题一 保持一致
  11. lammps教程:叠加力场hybrid/overlay设置方法介绍
  12. 密码安全攻防技术精讲
  13. 一篇文章搞懂高级程序员、架构师、技术总监、CTO从薪资到技能的区别
  14. 12.qgis二次开发qt中实现图层树右键图层更改图层颜色,以及图层标注。
  15. 计算机进入启动死循环,win7系统重装死循环一直反复关机重启的解决方法
  16. 在线靶场-墨者-网络安全2星-某防火墙默认口令
  17. echarts 重新加载数据
  18. pta Mysql题目集 (81-100)
  19. 计算机交互媒体应用范围,浅析交互媒体设计中的科技与艺术的关系
  20. wchar* char*相互转换

热门文章

  1. 最接地气的工业元宇宙解读
  2. App Tech Support
  3. request对象的常用方法
  4. Android 7.1 双卡双待机器,首选网络类型设置 详细分析
  5. BP神经网络python实现
  6. MP3的频率、比特率、码率与音质的关系
  7. java equals equalsignorecase 性能_Java中equals()、equalsIgnoreCase()和==的区别
  8. 【2022 开源之夏】SOFAStack 和 MOSN 社区项目中选结果
  9. js 中控制打印方向横向还是纵向。
  10. 【Java编程进阶】常量变量及作用域