每周分享五个 PyCharm 使用技巧(二)

你们好,今天我又来给你们更新 PyCharm 的使用技巧。html

从今年3月24号开始一直到7月22号,将近四个月的时间。一共更新了6篇文章,每篇 5 个小技巧,总计 30 个。python

这30个使用技巧,所有是我本身在使用 PyCharm 中认为比较有用的,抽取出来分享给你们,有一些虽然只是一个小小的配置,可是配置好了,在使用过程却能节省很多的时间。正则表达式

这是本系列的第六篇文章,同时也是最后一篇文章。不知道正在看这篇文章的你,看了这个系列后,是否会有一点帮助?如有,那我花时间整理的这些就真的值了。shell

照例,若是你还未看过其余五篇,能够点此进行查看。编程

每周分享五个 PyCharm 使用技巧(一)
每周分享五个 PyCharm 使用技巧(二)
每周分享五个 PyCharm 使用技巧(三)
每周分享五个 PyCharm 使用技巧(四)
每周分享五个 PyCharm 使用技巧(五)
每周分享五个 PyCharm 使用技巧(六)框架

06. 神同样的调试技巧

假如咱们在一个爬虫的项目中,会使用到 正则表达式 来匹配咱们想要抓取的内容。正则这种东西,有几我的可以一步到位的呢,一般都须要通过不少次的调试才能按预期匹配。在咱们改了一次正则后,运行了下,须要从新向网站抓取请求,才能发现没有匹配上,而后又改了一版,再次运行一样须要发起请求,结果仍是发现仍是没有匹配上,每每复复,正则很差的同窗可能要进行几十次的尝试。函数

(上面这个例子可能不太贴切,毕竟是有不少种方法实现不用从新发请求,只是列举了一种很笨拙且低效的调试过程,你看看就行了)单元测试

而咱们在这几十次的调试中,向同一网站发起请求都是没有意义的重复工做。若是在 Pycharm 中能够像 IPython Shell 和 Jupyter Notebook 那样,能够记住运行后全部的变量信息,那咱们就能够在打了断点后,能够在不须要从新运行项目或脚本,就能够经过执行命令表达式,来调整咱们的代码,进行咱们的正则调试。学习

答案固然是有。测试

假如我在调试以下几行简单的代码。在第 3 行处打了个断点。而后点击图示位置 Show Python Prompt 按钮。

就进入了 Python Shell 的界面,这个Shell 环境和咱们当前运行的程序环境是打通的,变量之间能够互相访问,这下你能够轻松地进行调试了。

上面咱们打了个断点,是为了方便说明这个效果。并非说必定要打断点。若是不打断点,在脚本执行完成后,也仍然能够在这个界面查看并操做全部变量。

如今咱们已经能够知足咱们的调试的需求,可是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。嗯?其实这个有地方能够设置默认打开的。这个开关还比较隐秘,通常人还真发现不了。

你须要点击图示位置 Edit Configurations 处。

而后在这里打勾选中。

设置上以后,以后你每次运行后脚本后,都会默认为你存储全部变量的值,并为你打开 console 命令行调试界面。

除了上面这种方法,其实还有一种方法能够在调试过程当中,执行命令表达式,而这种你们可能比较熟悉了,这边也提一下,就当是汇总一下。可是从功能上来讲,是没有上面这种方法来得方便易用的。由于这种方法,必需要求你使用 debug 模式运行项目,并打断点。

使用方法就是,在你打了断点后,在图示位置处,点击右键使用 Evaluate Expression

就弹出了一个 Evaluate Expression 窗口,这里 能够运行命令表达式,直接操做变量。

07. 指定参数执行脚本

你在 Pycharm 运行你的项目,一般是怎么执行的?个人作法是,右键,而后点击 Run,或者使用快捷键 Shift + F10

有时候,在运行/调试脚本的时候,咱们须要指定一些参数,这在命令行中,直接指定便可。

假设在命令行中,运行脚本的命令是这样

python main.py init --local

对于刚使用 Pycharm 的同窗,可能并不知道 Pycharm 也是能够指定参数的。点击下图位置

进入设置面板,在 Script parameters 中填入参数便可。

同时在上图的底部,你能够看到,这里能够很方便的切换 解释器,比你跑到这边来要容易得多吧

08. 搜索时过滤测试文件

接下来,介绍一个,我看框架源码的时的一个小技巧,可能只适用一小部分人吧。

我平时会看的框架是 OpenStack ,我不知道其余框架是怎样的,但在 OpenStack 里面带有大量(真的不少)的单元测试文件。这给我在使用 Find in Path 时带来了不小的困扰,你能够从下图的搜索结果中感觉一下,搜索一个函数,test 文件里的结果比 正常文件要多不少。

这些测试文件的搜索结果,对于咱们看源代码不只没有任何帮助的,更重要的是还干扰视线。因而我就研究了一下,从文件名入手,只要在 File mask 里填写 !test* 能够将这些test文件过滤掉。搜索结果一会儿清晰不少。

09. 关闭烦人的灯泡提示

原本没有想写这个的,可是知乎上有一位朋友有这个需求,那我研究了下。

先来讲下这个灯泡提示是什么,有什么用?

当咱们在代码里面有语法错误,或者代码编写不符合 pep8 代码规范时,鼠标选择有问题的代码,就会自动弹出小灯泡,这个灯泡是有颜色之分的,若是是红灯泡,通常都是语法问题,若是不处理会影响代码运行。而若是是黄灯泡,就只是一个提示,提示你代码不规范等,并不会影响程序的运行。

虽然这个灯泡,是出于善意之举,但我认为它确实有点多余(多是我我的没有使用它的习惯),要是语法错误会有红色波浪线提示。你可能会说灯泡不只起到提示的做用,它还能够自动纠正代码,我我的感受并无人工校订来得效率,来得精准。

基于有时还会像知乎上这个朋友说的这样,会挡住咱们的代码,会常常误点,这确实也是一个烦恼。

我研究了下,Pycharm (2018版本)里是有开关按钮的,将下图中的这个选项(Show intention bulb)取消勾选,就能够关闭这个功能。

10. 关闭碍眼的波浪线

下面我先给出了一小段代码示例,思考一下,为何name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢?

Pycharm 自己会实时地对变量名进行检查,若是变量名不是一个已存在的英文单词,就会出现一条波浪线,当一个变量里有多个单词时,Python 推荐的写法是用下划线来分隔(其余语言可能会习惯使用驼峰式命名法 ,但 Python 是使用下划线),因此在 Pycharm 看来 my_name 是规范的,而 myname 会被当成是一个单词对待,因为它在单词库里并无它,因此 myname 是不规范的。

每一个人的变量命名习惯不同,如何你在项目里大量使用了 myname 这种风格的变量命名方法,像下面这样(随便找了一段 cloudinit 的代码),是让人挺不舒服的,总有一种代码有 bug 的错觉。

那么如何关闭这个非语法级别的波浪线呢?很简单,它的开关就在你的右下角那个像 人头像 同样的按钮

而后选择 Syntax 级别的便可。一样一段代码,效果以下,干净了不少。


本系列 30 个 PyCharm 小技巧所有更新完毕了,你能够点击顶部的超连接进行学习。

但愿对你掌握和配置 PyCharm 会有帮助,想继续看文章的朋友,也能够关注个人公众号「Python编程时光」,全部的文章都会在那里首发,公众号里的文章我都通过精心的排版,阅读体验好。欢迎你们来订阅。


关注公众号,获取最新干货!

相关文章
相关标签/搜索