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断点调试相关推荐

  1. spyder 断点调试python代码

    想了一下,觉得需要写这个内容,因为自己折腾了很久,网上内容又超级乱很不全. 进入spyder后,随便打开一个文件 spyder最上栏有如下几个图标 从左到右分别是: debug file (ctrl+ ...

  2. VS Code 安装 Go 插件、自定义扩展配置、断点调试

    1. 安装插件 使用快捷键 Ctrl+Shift+X 打开插件安装页面,安装 Go 插件. 2. 自定义扩展配置 使用快捷键 Ctrl+, 打开自定义配置页,编辑 settings.json ,定义与 ...

  3. ajax请求必须打断点才能成功,Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)...

    以前写过一个程序,发现用断点调试的时候,一步步的运行,程序是可以的,但是去了断点程序就出现了问题. $(document).ready(function(){ var arra=new Array() ...

  4. vs2005无法断点调试网站,断点失效

    vs2005无法断点调试网站,断点失效 今天做网站开始调试没问题,可是打补定不小心把 IE8 给装上拉,装了IE8之后, Vs2005的WebSite程序按F5无法正常调试. 需要手动附加到进程, 比 ...

  5. Fiddler抓包使用教程-断点调试

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/62896784 本文出自[赵彦军的博客] Fiddler 里面的断点调试有2种方式. ...

  6. vs c# release断点调试

    工具 选项 常规  启用"仅我的代码" 勾去掉,就可以加断点调试

  7. 说说如何使用unity Vs来进行断点调试

    转载自:http://dong2008hong.blog.163.com/blog/static/4696882720140293549365/ 大家可以从这下载最新版的unity vs. Unity ...

  8. Java Eclipse进行断点调试

    Java Eclipse进行断点调试 如何调试Java程序? 大家最开始学习Java,都会觉得IDE调试好高端有木有,其实很简单了. 下文会尽量简单直观的教会你在Eclipse中调试,其他的IDE调试 ...

  9. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

    文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...

最新文章

  1. telnet检查接收邮件命令
  2. IPv6 解说 ,与IPv4的同异
  3. python_对象的基本组成和内存示意图---python工作笔记016
  4. Springboot thymeleaf i18n国际化多语言选择-2.业务流程内部返回 对应的语言
  5. Scala基础入门(二) Scala下载、安装教程
  6. 一台计算机连接两个投影,Win10系统电脑外接双显示器(投影仪)设置图文教程
  7. 第21期状元简讯:自贸区首个跨境电商平台将上线
  8. c++学习书籍推荐《深度探索C++对象模型》下载
  9. edp和edt哪个好_香水edt和edp的区别
  10. idea java 语法高亮_Intellij IDEA 中JAVA常用配置项总结
  11. 遇文件尾测试结束c语言,Fortran和C语言测试文件尾的方法
  12. WebForm(二)——控件和数据库连接方式
  13. cube函数matlab_Matlab geom3d函数注释
  14. 页面相关的数据存储(缓存及Web Storage)
  15. Spring Boot 2.X + Shiro 优雅解决 session 跨域问题
  16. 计算机的负面影响英语作文,关于电脑的坏处英语作文
  17. ajax获取http状态码
  18. JXTA 2: 具有高性能、海量伸缩性的 P2P 网络
  19. JAVA小游戏——黄金矿工
  20. nginx 常用配置之 pass_proxy

热门文章

  1. oracle判断字符串以什么开头_在sql查询字段中怎么去判断是以某字母开头
  2. mysql中数据发生变化时判断_MySql插入记录时判断
  3. 数学知识——矩阵乘法
  4. ip地址和子网掩码的相与计算规则
  5. 2021-07-28 关于软件测试从业人员的几个误解
  6. 思考乐教育的荣耀与忧虑:整体增速放缓,异地扩张未见成效
  7. Elasticsearch实战-实现Hotel索引库的自动补全、拼音搜索功能
  8. 解决“Liquibase: Waiting for changelog lock”数据库死锁问题
  9. python 从4399获取小游戏
  10. win10安装ubuntu-GNOME双系统踩坑综合