Python学习笔记--调试器debugger
程序中总是难免有一些bug,有一些是可以由代码解释器查出来的,而有一些却是比较隐蔽的。
在Python中,有三种bugs可能出现在代码中:
语法错误(syntax errors):一般是由程序员的拼写错误(typo)造成的,可以由解释器找出来。这种错误不解决,则程序无法运行。
运行时错误(runtime errors):程序运行时产生的错误。程序会运行,直到存在这种错误的代码行,终止运行,同时解释器会提示一个traceback并显示出错的行数。
语义错误(semantic errors):这种错误是最难找的,也是最需要用到debugger的地方,因为这种错误不会造成程序提前终止,而会执行完,但结果与预期不符。可能是自己的一个公式写错,也可能是自己把变量取值范围写错,等等。
这时,使用debugger就可以查看程序运行中的实时情况,知道当时的变量值或者分支情况,加快寻找bug的过程。
步骤(windows下):
首先,打开代码文件。
其次,打开debugger:在交互的shell中,点击Debug菜单项,在弹出的菜单中点击Debugger,这时Debug control窗口就会弹出来了。将Source与Globals打上勾。在这个窗口中,可以找到自己需要的所有运行时信息。
然后,转到代码文件,按F5,运行。由于打开了debugger,程序会停到第一行。这时,就要用到Debug control窗口中左上角那5个按钮了。它们的意思分别为:
Go:以正常速度执行程序的剩余部分,直到结束或者遇到一个断点(break point)
Step:一次让程序执行一行代码,如果当前行是一个函数调用,则debugger会跳进这个函数里面。
Over:一次让程序执行一行代码,如果当前行是一个函数调用,则debugger不会跳进这个函数,而会直接得到其运行结果,并移动到下一行。
Out:当debugger已进入某一个函数调用的时候,可以直接跳出这个函数;当未进入函数调用的时候(即在主程序中),则与Go作用相同。
Quit:直接结束程序。
对于每一种debugger,设置Break point的功能都是必不可少的。在Python中,通过在代码文件中的某一行点右键可以对这一行添加断点或者取消断点。断点设置成功后,这一行会被变成黄色的高亮。断点配合Go命令,可以加快debug的过程。
Python学习笔记--调试器debugger相关推荐
- W801单片机学习笔记——调试器的配置与使用(适用于W801和W806)
1.前言 在以往的Cortex-M内核单片机的开发中,最离不开的一个东西就是调试器,什么J-Link,ST-Link,DAP-Link等等,没了他们调试程序感觉浑身难受,效率直线下降.调试器就好比是战 ...
- Python 学习笔记9(装饰器,decorator)
Python 学习笔记9(装饰器,decorator) 31 装饰器 装饰器可以对一个函数.方法或者类进行加工,是一种高级的python语法. 装饰函数 接收一个可调用对象作为输入参数,并返回一个新的 ...
- python学习笔记4(对象/引用;多范式; 上下文管理器)
python学习笔记4(对象/引用:多范式; 上下文管理器) ### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象 21. 动态类型:对象/引用 对象和引用: 对象是 ...
- [转载] Python学习笔记——用装饰器decorator和Memoization记忆化提高效率,原理讲清楚了
参考链接: 在Python中使用装饰器进行记忆 Python学习笔记--用装饰器decorator和Memoization记忆化提高效率 装饰器Memoization记忆化运用`functools`中 ...
- Python学习笔记:Day 16 编写移动App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day15 部署Web App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day14 完成Web App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day13 提升开发效率
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day 12 编写日志列表页
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此, 写下这些 ...
最新文章
- Adadelta原文解读
- Java面向对象(13)--==操作符与equals方法
- [css] 请用css写一个扫码的加载动画图
- day-17 包与模块
- Linux Shell脚本专栏_批量主机远程执行命令脚本_08
- 【响应式编程的思维艺术】 (4)从打飞机游戏理解并发与流的融合
- 如何开启MySQL的慢查询日志
- python怎么做项目_通过例子说明如何维护好一个Python开源项目
- ubuntu 卸载python_如何在各种环境下正确安装python——Linux
- GF6 WFV卫星视角影响、与Sentinel2协同及精度分析
- matlab实验求不定积分函数,如何用matlab求取函数的不定积分与定积分 涨知识了...
- php教程phpmeng,李炎恢PHP培训视频教程
- (SSM,JQUERY-EASYUI,MYSQL)快递物流系统
- golang 开源项目
- java虎胆龙威_格斗之王3虎胆龙威
- 化工原理 --- 流体流体 --- 习题课及复习
- JBOD(Just a Bunch Of Disks,磁盘簇)简介
- Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现
- java for无限循环
- Quartus (Quartus Prime 18.1)的安装及仿真步骤