使用IDLE调试器调试Python程序
- 推荐自己的专栏:分享一些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。
运行IDLE并打开程序源代码test. py。
设置断点。在想要调试的语句上,通过鼠标右键快捷菜单[SetBreakpoint]设置断点,设置了断点的代码行底色为黄色,如下图所示。也可以通过[Clear Breakpoint] 清除已经设置的断点。
打开调试器。在IDLE窗口,运行程序(按快捷键[F5] 或者点击[Run] | [Run Module])。
在弹出的Python解释器命令行窗口,
通过执行菜单命令[Debug] | [Debugger] ,打开调试器窗口,
请确保[Debugger]菜单处于选中状态,此时Python解释器命令行窗口显示[DEBUG ON]。在调试器[Debug Control] 窗口,选中Source和Globals复选框。
调试运行程序。在IDLE窗口,运行程序(按快捷键[F5] 或者点击[Run] | [Run Module])。程序在代码的第一行中断暂停。 底色为灰色的代码为当前执行代码行。
用户可以通过[Debug Control] 窗口查看程序运行状态(调用堆栈Stack、局部变量Locals、全局变量Globals),执行下一步调试命令。
在[Debug Control] 窗口中单击运行调试命令[Go],使程序运行到下一个断点处中断暂停。
查看程序运行状态。查看局部变量Locals和全局变量Globals。 此时n为3。
在[Debug Control] 窗口中单击运行调试命令 [Over],单步执行命令。由于n为3,故程序跳转到else后的第一条语句。
继续执行其它调试命令。(注: 运行调试命令 [Go] 执行到下一个断点; [Step] 进入函数; [Over]单步执行;[Out]跳出函数;[Quit]退出结束调试)。
使用IDLE调试器调试Python程序相关推荐
- 谷歌调试器调试的js_时辰?? “时间旅行”调试器
谷歌调试器调试的js Chronon是一个新的"时空旅行"调试器. Chronon包含一个"飞行数据记录器",该记录器记录程序内部执行的代码行,并将其保存到文件 ...
- 使用GDB命令行调试器调试C/C++程序
编译自:http://xmodulo.com/gdb-command-line-debugger.html 作者: Adrien Brochard 原创:LCTT https://linux.cn/a ...
- Linux 内核调试器 调试指南
Linux 内核调试器内幕 KDB 入门指南 Hariprasad Nellitheertha (nharipra@in.ibm.com), 软件工程师, IBM 简介: 调试内核问题时,能够跟踪内核 ...
- 【转】无调试器调试--使用调试宏
转自:https://www.hahack.com/wiki/tools-makefile.html# 调试器的出现固然极大地改善了可怜的程序员们的生活水平,然而调试器也并不总是扮演救世主的角色,例如 ...
- python IDLE 的调试器
"调试器"是 IDLE 的一项功能,让你每次执行一行程序.调试器将运行一行代码,然后等待你告诉它继续.像这样让程序运行"在调试器之下",你可以随便花多少时间,检 ...
- python的调试器_玩转Python调试器
如果你还只会使用print来定位python程序问题,那这篇文章就是为你写的,这篇文章将带你入门python调试器.python标准库提供了一个叫pdb的调试器,它提供了调试所需的绝大多数常用功能,比 ...
- pdb—Python调试器
pdb-Python调试器 在python 3.8文档 Python 常用指引中已经详细介绍了pdb模块,此处为引用官方文档 该模块pdb为Python程序定义了一个交互式源代码调试器.它支持在源代码 ...
- python文档测试_【Python入门】19.调试器pdb、单元测试unittest和文档测试doctest
笔记更新于2019年12月4日, 摘要:各种调试方法介绍assert.logging.调试器pdb:单元测试unittest的编写方法.如何运行单元测试:文档测试doctest的编写 写在前面:为了更 ...
- 如何调试Python程序(pdb使用手册)
调试程序对于开发人员是一项非常重要的技能,它使得我们能够查看程序的运行过程,帮助我们准确的定位程序中的错误. 然而,令人意外的是,无数的Python工程师居然不知道如何对Python代码进行单步调试, ...
最新文章
- POJ 3613 快速幂+Floyd变形(求限制k条路径的最短路)
- 奥托尼克斯接近开关型号_12月23日NBA | 骑士VS老鹰、尼克斯VS奇才、开拓者VS鹈鹕...
- 重磅开源!目标检测新网络 DetectoRS:54.7 AP,特征金字塔与空洞卷积的完美结合
- P1032 字串变换
- android使用perfetto工具步骤
- memcache java client_Memcache的客户端连接系列(一) Java
- 诗与远方:无题(三十五)- 曾经写给妹子的一首诗
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
- php框架加滑动条,IOS_iOS实现双向滑动条效果,最近做项目,碰到一种双向滑 - phpStudy...
- 用python解算法谜题_【编程的乐趣-用python解算法谜题系列】谜题一 保持一致
- lammps教程:叠加力场hybrid/overlay设置方法介绍
- 密码安全攻防技术精讲
- 一篇文章搞懂高级程序员、架构师、技术总监、CTO从薪资到技能的区别
- 12.qgis二次开发qt中实现图层树右键图层更改图层颜色,以及图层标注。
- 计算机进入启动死循环,win7系统重装死循环一直反复关机重启的解决方法
- 在线靶场-墨者-网络安全2星-某防火墙默认口令
- echarts 重新加载数据
- pta Mysql题目集 (81-100)
- 计算机交互媒体应用范围,浅析交互媒体设计中的科技与艺术的关系
- wchar* char*相互转换
热门文章
- 最接地气的工业元宇宙解读
- App Tech Support
- request对象的常用方法
- Android 7.1 双卡双待机器,首选网络类型设置 详细分析
- BP神经网络python实现
- MP3的频率、比特率、码率与音质的关系
- java equals equalsignorecase 性能_Java中equals()、equalsIgnoreCase()和==的区别
- 【2022 开源之夏】SOFAStack 和 MOSN 社区项目中选结果
- js 中控制打印方向横向还是纵向。
- 【Java编程进阶】常量变量及作用域