Spyder断点调试
Spyder官方文档地址
http://pythonhosted.org/spyder/
一、功能键介绍:
设置断点:鼠标左键双击或者F12
其他功能键功能如下:
二、开始调试
先写一个简单的小程序用于调试:
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 28 23:59:40 2017@author: 燃烧杯
"""a = 'a'
b = 'b'
c = 'c'
e = 'e'
f = 'f'
g = 'g'
h = 'h'
print(a)
我们暂时先不打断点,用debug的方式运行该代码试试
点击spyder工具栏上的Debug file按钮,或者使用快捷键Ctrl+F5开始调试。
在ipython界面会输出如图所示的内容:
first debug
出现了ipdb提示符,说明我们已经进入了调试模式,上面输出的内容可以看出是代码的第一行,接着在提示符中输入c(continue的缩写,表示程序继续向下执行到下一个断点),会输出如下内容:
first_debug_end
程序执行结束,可见即使我们没有打断点,仍然会在第一句执行之前中断(经测试,中断的时候第一句还没有执行),这个和我用过的其他编译器不太一样(比如eclipse和IntelliJ,在不打断点的情况下会正常执行到底),一开始还让我困惑了一下,后来就适应了.
注:在每次开始debug之前,先在spyder的ipython界面中输入%reset
把工作空间的所有变量清除,以免影响到我们接下来的测试.
to_breakpoint
然后我们就到达了断点处,从箭头(-->)以及d:\ide\pyproject\pdbtest\test1.py(12)<module>()
中的数字12可以看出程序刚刚执行到了第12行(也就是我们打断点的这一行),第12行到底有没有执行呢?只要测试一下f变量是否存在就可以了,尝试在ipdb中进行如下输入:
ipdb
!(python语句)
的意思就是在当前状态下执行该python语句,我刚刚的用法的意思显然是查看变量内容,从!f
的错误信息可以看出f尚未定义,即第12行代码(f='f'
)还没有执行,查看e变量发现e变量已经被定义了,这说明第11行已经执行结束了。通过以上实验可以看出,spyder会在断点语句的执行之前中断
三、Step Into的用法
上面一张图的按钮的功能我们称之为Step Into(下面一张图的按钮的功能我们称之为return),用于进入一个函数体内部,为了更清楚的说明它的功能,我们给出一个例子,在spyder中创建如下程序:
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 29 14:22:46 2017@author: 燃烧杯
"""def myTest():c = 'a'd = 'b'e = 'c'return ca = 'a'
b = 'b'
c = myTest()
f = 'f'
print(a)
我们开始debug,不断地按Ctrl+F10
单行执行这个程序,当运行到c = myTest()
这句时注意一下:
not_step_into
不管myTest()中有多少代码都直接当做一行跳了过去,用q命令退出调试。
重新debug该文件,单行执行到c = myTest()
这行时按Ctrl+F11
使用Step Into功能,发现我们进入了函数内部的代码段:
step_into
这就Step Into的主要功能.
四、Return
Return的功能与Step Into的功能刚好相反,当使用Step Into进入函数之后,按Ctrl+Shift+F11
后会直接跳到该函数的执行的最后一行,此时在按一遍Ctrl+Shift+F11
或者Ctrl+F10
(单行执行)就可以跳出函数了,想要尝试的话可以自行在我上面给出的例子中尝试.
转自:https://www.jianshu.com/p/082b20fcafea
Spyder断点调试相关推荐
- spyder 断点调试python代码
想了一下,觉得需要写这个内容,因为自己折腾了很久,网上内容又超级乱很不全. 进入spyder后,随便打开一个文件 spyder最上栏有如下几个图标 从左到右分别是: debug file (ctrl+ ...
- VS Code 安装 Go 插件、自定义扩展配置、断点调试
1. 安装插件 使用快捷键 Ctrl+Shift+X 打开插件安装页面,安装 Go 插件. 2. 自定义扩展配置 使用快捷键 Ctrl+, 打开自定义配置页,编辑 settings.json ,定义与 ...
- ajax请求必须打断点才能成功,Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)...
以前写过一个程序,发现用断点调试的时候,一步步的运行,程序是可以的,但是去了断点程序就出现了问题. $(document).ready(function(){ var arra=new Array() ...
- vs2005无法断点调试网站,断点失效
vs2005无法断点调试网站,断点失效 今天做网站开始调试没问题,可是打补定不小心把 IE8 给装上拉,装了IE8之后, Vs2005的WebSite程序按F5无法正常调试. 需要手动附加到进程, 比 ...
- Fiddler抓包使用教程-断点调试
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/62896784 本文出自[赵彦军的博客] Fiddler 里面的断点调试有2种方式. ...
- vs c# release断点调试
工具 选项 常规 启用"仅我的代码" 勾去掉,就可以加断点调试
- 说说如何使用unity Vs来进行断点调试
转载自:http://dong2008hong.blog.163.com/blog/static/4696882720140293549365/ 大家可以从这下载最新版的unity vs. Unity ...
- Java Eclipse进行断点调试
Java Eclipse进行断点调试 如何调试Java程序? 大家最开始学习Java,都会觉得IDE调试好高端有木有,其实很简单了. 下文会尽量简单直观的教会你在Eclipse中调试,其他的IDE调试 ...
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...
最新文章
- telnet检查接收邮件命令
- IPv6 解说 ,与IPv4的同异
- python_对象的基本组成和内存示意图---python工作笔记016
- Springboot thymeleaf i18n国际化多语言选择-2.业务流程内部返回 对应的语言
- Scala基础入门(二) Scala下载、安装教程
- 一台计算机连接两个投影,Win10系统电脑外接双显示器(投影仪)设置图文教程
- 第21期状元简讯:自贸区首个跨境电商平台将上线
- c++学习书籍推荐《深度探索C++对象模型》下载
- edp和edt哪个好_香水edt和edp的区别
- idea java 语法高亮_Intellij IDEA 中JAVA常用配置项总结
- 遇文件尾测试结束c语言,Fortran和C语言测试文件尾的方法
- WebForm(二)——控件和数据库连接方式
- cube函数matlab_Matlab geom3d函数注释
- 页面相关的数据存储(缓存及Web Storage)
- Spring Boot 2.X + Shiro 优雅解决 session 跨域问题
- 计算机的负面影响英语作文,关于电脑的坏处英语作文
- ajax获取http状态码
- JXTA 2: 具有高性能、海量伸缩性的 P2P 网络
- JAVA小游戏——黄金矿工
- nginx 常用配置之 pass_proxy
热门文章
- oracle判断字符串以什么开头_在sql查询字段中怎么去判断是以某字母开头
- mysql中数据发生变化时判断_MySql插入记录时判断
- 数学知识——矩阵乘法
- ip地址和子网掩码的相与计算规则
- 2021-07-28 关于软件测试从业人员的几个误解
- 思考乐教育的荣耀与忧虑:整体增速放缓,异地扩张未见成效
- Elasticsearch实战-实现Hotel索引库的自动补全、拼音搜索功能
- 解决“Liquibase: Waiting for changelog lock”数据库死锁问题
- python 从4399获取小游戏
- win10安装ubuntu-GNOME双系统踩坑综合