小白Pycharm使用(4):PyCharm断点调试以及变量监测是怎么玩的?

python开发新手工具网盘地址 下载链接:http://pan.baidu.com/s/1eS8WMR4     密码:7eso pycharm中文版包网盘地址下载链接:http://pan.baidu.com/s/1dEVkPtn  密码:mzet pycharm注册码 http://idea.qinxi1992.cn http://intellij.mandroid.cn  (或http://idea.imsxm.com或http://idea.iteblog.com/key.php)

PyCharm作为一款针对Python语言编程集成开发环境(IDE),功能方面已经做到极致了。虽然Visual Studio 2017已经添加了Python编程的支持(PTVS),也继承了C++的断点调试功能,但在Python开发方面还是有很多功能没有PyCharm来的方便。PyCharm提供的断点调试也灰常强大,正常使用print函数这种辅助代码来调试代码的方式针对简单模块来说来算OK,但这需要经验来判断,决定哪里输出什么数据,一旦程序复杂之后,需要参考的数值会很多,全部输出会很繁琐,而且print也需要时间代价,会导致程序执行效率降低,因此我们采用断点调试这种更直观便捷的方式。


断点是指在代码中设置中断位置,当程序运行到中断位置的时候会中断下来,让程序员可查看此时每个变量的值,因断点中断的程序并没有结束,可以选择继续执行。

我们来看看PyCharm是如何玩断点调试的?

之前文章的一段代码

通过鼠标单击左侧行号就可以创建断点,上图中在12、19、20行总共创建了三个断点,有断点的行代码颜色也会高亮。我们通过快捷键F9来Debug这段代码。

蓝色高亮的行表示代码运行到这个断点(第19行)中断下来了,在Debugger栏可以看到当前所有有效的变量值

此时有效的变量值只有变量dict_ex,再按F9程序会执行到下一个断点(第20行)

此时的变量会有所变化,按F9是按断点来调试的方式,还有一种经常使用的功能是单步调试。

快捷键和快捷按钮对应Debugger

解释一下常用的几个

Step Over(F8): 单击此按钮执行程序,直到当前方法或文件中的下一行,跳过当前执行点(如果有的话)引用的方法。 如果当前行是方法中的最后一行,则执行步骤到此方法之后执行的行。

Step Into(F7):单击此按钮可使调试器进入当前执行点调用的方法。

Step Into My Code(Shift+Alt+F7):点击此按钮跳过library代码,并专注于您自己的代码。

Step Out(F8):单击此按钮使调试器从当前方法中退出,直到执行完毕。

我比较喜欢用F7和Shift+Alt+F7以及前面的F9结合的方式来调试代码,无敌的存在,变量心中有,没什么代码是搞不定的,但是工作中往往测试代码要自己做单元测试,代码可能在Maya或Houdini里能运行,但在PyCharm里不能执行,这是比较不好操作的,只能写单元测试代码来调试了。

添加变量监测功能也很好用,它可以把你关心的变量单独提出来放在Watches面板供监测

接下来就是频繁地使用F7,F8,F9这些快捷键调试自己的代码了,少按点Q键吧,多学习。

对应的Visual Studio断点调试方法如出一辙,可能快捷有所不同。

(版权所有:LOGO)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

GoAhead服务器 远程命令执行漏洞 分析报告

安全通告 1 GoAhead Web Server是为嵌入式实时操作系统(RTOS)量身定制的开源Web服务器。很多国际一线大厂商,包括IBM、HP、Oracl...

24110
来自专栏更流畅、简洁的软件开发方式

ajax的再次封装!

js的动态加载、缓存、更新以及复用 系列有点卡文,放心会继续的。先来点更基础的,为js的加载做点铺垫。   jQuery的ajax本来就很方便了,为啥还要在进一...

2628
来自专栏大内老A

[WCF-Discovery]如何利用”发现代理”实现可用服务的实时维护?

上面的内容大部分是围绕着Ad-Hoc模式展开介绍的。Managed模式和Ad-Hoc不同之处在于可用服务的终结点通过发现代理来统一管理。客户端在进行可用目标服务...

2578
来自专栏SpringBoot 核心技术

第二十六章:SpringBoot使用@Scheduled创建定时任务

1703
来自专栏macOS 开发学习

Mac OSX 给现有的应用追加基于文档的功能

在Xcode中创建Cocoa Application 工程时,通常有两种选择类型:<code>基于文档的Application</code> 和<code>非文...

932
来自专栏王清培的专栏

.NET/ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)

阅读目录: 1.开篇介绍 2.System.Web.Optimization 组件 3.System.Web.Optimization 组件基本原理 4.扩展自...

1957
来自专栏有趣的Python

最新Django2.0.1在线教育零基础到上线教程(三)-3&4&5

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGe...

4535
来自专栏Golang语言社区

实效go编程--4

func handle(queue chan *Request) { for r := range queue { process(r)...

35915
来自专栏王磊的博客

GentleNet使用之详细图解[语法使用增强版]

目录 第一章 开发环境 第二章 简介 第三章 Gentle.Net-1.5.0 下载文件包介绍 第四章 使用步骤 第五章 源码下载 第一章、开发环境: Vs 2...

2849
来自专栏北京马哥教育

Linux 文件管理命令语法、参数、实例全汇总(一)

命令:cat cat 命令用于连接文件并打印到标准输出设备上。 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--v...

3506

扫码关注云+社区

领取腾讯云代金券