你们好,今天我又来给你们更新 PyCharm 的使用技巧。html
从今年3月24号开始一直到7月22号,将近四个月的时间。一共更新了6篇文章,每篇 5 个小技巧,总计 30 个。python
这30个使用技巧,所有是我本身在使用 PyCharm 中认为比较有用的,抽取出来分享给你们,有一些虽然只是一个小小的配置,可是配置好了,在使用过程却能节省很多的时间。正则表达式
这是本系列的第六篇文章,同时也是最后一篇文章。不知道正在看这篇文章的你,看了这个系列后,是否会有一点帮助?如有,那我花时间整理的这些就真的值了。shell
照例,若是你还未看过其余五篇,能够点此进行查看。编程
每周分享五个 PyCharm 使用技巧(一)
每周分享五个 PyCharm 使用技巧(二)
每周分享五个 PyCharm 使用技巧(三)
每周分享五个 PyCharm 使用技巧(四)
每周分享五个 PyCharm 使用技巧(五)
每周分享五个 PyCharm 使用技巧(六)框架
假如咱们在一个爬虫的项目中,会使用到 正则表达式 来匹配咱们想要抓取的内容。正则这种东西,有几我的可以一步到位的呢,一般都须要通过不少次的调试才能按预期匹配。在咱们改了一次正则后,运行了下,须要从新向网站抓取请求,才能发现没有匹配上,而后又改了一版,再次运行一样须要发起请求,结果仍是发现仍是没有匹配上,每每复复,正则很差的同窗可能要进行几十次的尝试。函数
(上面这个例子可能不太贴切,毕竟是有不少种方法实现不用从新发请求,只是列举了一种很笨拙且低效的调试过程,你看看就行了)单元测试
而咱们在这几十次的调试中,向同一网站发起请求都是没有意义的重复工做。若是在 Pycharm 中能够像 IPython Shell 和 Jupyter Notebook 那样,能够记住运行后全部的变量信息,那咱们就能够在打了断点后,能够在不须要从新运行项目或脚本,就能够经过执行命令表达式,来调整咱们的代码,进行咱们的正则调试。学习
答案固然是有。测试
假如我在调试以下几行简单的代码。在第 3 行处打了个断点。而后点击图示位置 Show Python Prompt
按钮。
就进入了 Python Shell
的界面,这个Shell 环境和咱们当前运行的程序环境是打通的,变量之间能够互相访问,这下你能够轻松地进行调试了。
上面咱们打了个断点,是为了方便说明这个效果。并非说必定要打断点。若是不打断点,在脚本执行完成后,也仍然能够在这个界面查看并操做全部变量。
如今咱们已经能够知足咱们的调试的需求,可是每次运行脚本,都要手动点击 Show Python Prompt
,有点麻烦。嗯?其实这个有地方能够设置默认打开的。这个开关还比较隐秘,通常人还真发现不了。
你须要点击图示位置 Edit Configurations
处。
而后在这里打勾选中。
设置上以后,以后你每次运行后脚本后,都会默认为你存储全部变量的值,并为你打开 console 命令行调试界面。
除了上面这种方法,其实还有一种方法能够在调试过程当中,执行命令表达式,而这种你们可能比较熟悉了,这边也提一下,就当是汇总一下。可是从功能上来讲,是没有上面这种方法来得方便易用的。由于这种方法,必需要求你使用 debug 模式运行项目,并打断点。
使用方法就是,在你打了断点后,在图示位置处,点击右键使用 Evaluate Expression
就弹出了一个 Evaluate Expression
窗口,这里 能够运行命令表达式,直接操做变量。
你在 Pycharm 运行你的项目,一般是怎么执行的?个人作法是,右键,而后点击 Run
,或者使用快捷键 Shift + F10
。
有时候,在运行/调试脚本的时候,咱们须要指定一些参数,这在命令行中,直接指定便可。
假设在命令行中,运行脚本的命令是这样
python main.py init --local
对于刚使用 Pycharm 的同窗,可能并不知道 Pycharm 也是能够指定参数的。点击下图位置
进入设置面板,在 Script parameters
中填入参数便可。
同时在上图的底部,你能够看到,这里能够很方便的切换 解释器,比你跑到这边来要容易得多吧
接下来,介绍一个,我看框架源码的时的一个小技巧,可能只适用一小部分人吧。
我平时会看的框架是 OpenStack ,我不知道其余框架是怎样的,但在 OpenStack 里面带有大量(真的不少)的单元测试文件。这给我在使用 Find in Path
时带来了不小的困扰,你能够从下图的搜索结果中感觉一下,搜索一个函数,test 文件里的结果比 正常文件要多不少。
这些测试文件的搜索结果,对于咱们看源代码不只没有任何帮助的,更重要的是还干扰视线。因而我就研究了一下,从文件名入手,只要在 File mask
里填写 !test*
能够将这些test文件过滤掉。搜索结果一会儿清晰不少。
原本没有想写这个的,可是知乎上有一位朋友有这个需求,那我研究了下。
先来讲下这个灯泡提示是什么,有什么用?
当咱们在代码里面有语法错误,或者代码编写不符合 pep8 代码规范时,鼠标选择有问题的代码,就会自动弹出小灯泡,这个灯泡是有颜色之分的,若是是红灯泡,通常都是语法问题,若是不处理会影响代码运行。而若是是黄灯泡,就只是一个提示,提示你代码不规范等,并不会影响程序的运行。
虽然这个灯泡,是出于善意之举,但我认为它确实有点多余(多是我我的没有使用它的习惯),要是语法错误会有红色波浪线提示。你可能会说灯泡不只起到提示的做用,它还能够自动纠正代码,我我的感受并无人工校订来得效率,来得精准。
基于有时还会像知乎上这个朋友说的这样,会挡住咱们的代码,会常常误点,这确实也是一个烦恼。
我研究了下,Pycharm (2018版本)里是有开关按钮的,将下图中的这个选项(Show intention bulb
)取消勾选,就能够关闭这个功能。
下面我先给出了一小段代码示例,思考一下,为何name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢?
Pycharm 自己会实时地对变量名进行检查,若是变量名不是一个已存在的英文单词,就会出现一条波浪线,当一个变量里有多个单词时,Python 推荐的写法是用下划线来分隔(其余语言可能会习惯使用驼峰式命名法
,但 Python 是使用下划线),因此在 Pycharm 看来 my_name 是规范的,而 myname 会被当成是一个单词对待,因为它在单词库里并无它,因此 myname 是不规范的。
每一个人的变量命名习惯不同,如何你在项目里大量使用了 myname 这种风格的变量命名方法,像下面这样(随便找了一段 cloudinit 的代码),是让人挺不舒服的,总有一种代码有 bug 的错觉。
那么如何关闭这个非语法级别的波浪线呢?很简单,它的开关就在你的右下角那个像 人头像 同样的按钮
而后选择 Syntax
级别的便可。一样一段代码,效果以下,干净了不少。
本系列 30 个 PyCharm 小技巧所有更新完毕了,你能够点击顶部的超连接进行学习。
但愿对你掌握和配置 PyCharm 会有帮助,想继续看文章的朋友,也能够关注个人公众号「Python编程时光」,全部的文章都会在那里首发,公众号里的文章我都通过精心的排版,阅读体验好。欢迎你们来订阅。