https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ
在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果你觉得简单,直接略过即可,不是所有人都像你一样,是个天才,在你之外,仍然有许多刚入门的小伙伴。就像前几天我将上篇文章发在我的知乎专栏上,有的“大神”就不屑了,冷嘲热讽的,让我挺不舒服的。

文章本不是专门为你而写的,你也没有给我稿费,我也不为你服务,何为惩嘴舌之快呢?

好在从点赞数还算可观,是我在知乎上发过的技术文里数据最好的一篇,说明大家还是挺想看这样的文章的。还有一些暖心的知友,站出来替我说话,鼓励我继续更新,着实让人感动。

接下来是正文…

此系列的第一篇文章的阅读量还不错,说明大家对 PyCharm 使用技巧还是颇感兴趣的。今天又来给大家推荐一些我自己的用的小技巧,大家择需所取即可。

如果你还没看过,可以下面的传送门,直接访达

受用一生的高效 PyCharm 使用技巧(一)

  1. 神一样的调试技巧
    假如我们在一个爬虫的项目中,会使用到 正则表达式 来匹配我们想要抓取的内容。正则这种东西,有几个人能够一步到位的呢,通常都需要经过很多次的调试才能按预期匹配。在我们改了一次正则后,运行了下,需要重新向网站抓取请求,才能发现没有匹配上,然后又改了一版,再次运行同样需要发起请求,结果还是发现还是没有匹配上,往往复复,正则不好的同学可能要进行几十次的尝试。

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

而我们在这几十次的调试中,向同一网站发起请求都是没有意义的重复工作。如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以在不需要重新运行项目或脚本,只需稍微调整下我们的代码,直接就可以进行正则调试。

答案当然是有。

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

就进入了 Python Shell 的界面,这个Shell 环境和我们当前运行的程序环境是打通的,使用的是同一个 namespace,这下你可以轻松地进行调试了。

上面我们打了个断点,是为了方便说明这个效果。并不是说一定要打断点。如果不打断点,在脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。

现在我们已经可以满足我们的调试的需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。嗯?其实这个有地方可以设置默认打开的。这个开头还比较隐秘,一般人还真发现不了。

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

然后在这里打勾选中。

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

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

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

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

  1. 指定参数执行脚本 (重点)
    你在 Pycharm 运行你的项目,通常是怎么执行的?我的做法是,右键,然后点击 Run,或者使用快捷键 Shift + F10 。

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

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

python main.py init --local
对于刚使用 Pycharm 的同学,可能并不知道 Pycharm 也是可以指定参数的。点击下图位置

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

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

  1. 搜索时过滤测试文件
    接下来,介绍一个,我看框架源码的时的一个小技巧,可能只适用一小部分人吧。

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

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

  1. 关闭烦人的灯泡提示
    本来没有想写这个的,但是知乎上有一位朋友有这个需求,那我研究了下。

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

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

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

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

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

  1. 关闭碍眼的波浪线
    下面我先给出了一小段代码示例,思考一下,为什么name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢?

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

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

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

然后选择 Syntax 级别的即可。同样一段代码,效果如下,干净了很多。

好了,本周的 PyCharm 使用技巧,就是这五个了,你学会了吗?

受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件相关推荐

  1. 受用一生的高效PyCharm使用技巧(二)

    本文转载自公众号Python编程时光(ID: Python-Time) 今天又来给大家推荐一些我自己的用的小技巧,大家择需所取即可.如果你还没看过,可以下面的传送门,直接访达:受用一生的高效 PyCh ...

  2. 受用一生的高效 PyCharm 使用技巧(二)

    本文来自Python编程时光 第 1 篇可以点击下方链接?跳转: 受用一生的高效PyCharm使用技巧 6. 神一样的调试技巧 假如我们在一个爬虫的项目中,会使用到 正则表达式 来匹配我们想要抓取的内 ...

  3. 受用一生的高效 PyCharm 使用技巧(六)

    http://www.sohu.com/a/329854019_654419 大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从第一篇开始,一直到本篇,一共更新了6篇文章,每篇 5 个小技 ...

  4. 受用一生的高效 PyCharm 使用技巧(四)

    https://blog.csdn.net/pdcfighting/article/details/93269028 大家好,距离最近一篇 PyCharm 使用技巧的文章已经过去一月有余,最近虽然也比 ...

  5. 受用一生的高效 PyCharm 使用技巧(五)

    大家好,这个系列到今天已经是第五篇了,按照惯例,本次还是分享 5 个. 如果你还未看过前四篇,可以点此进行查看. 受用一生的高效PyCharm使用技巧受用一生的高效PyCharm使用技巧(二)受用一生 ...

  6. 受用一生的高效 PyCharm 使用技巧 !

    大家好,今天我又来给大家更新 PyCharm 的使用技巧. 本系列一共更新了6篇文章,每篇 5 个小技巧,总计 30 个. 这30个使用技巧,全部是我自己在使用 PyCharm 中认为比较有用的,抽取 ...

  7. pycharm 最上面的快速定位标签_受用一生的高效 PyCharm 使用技巧(四)

    原标题:受用一生的高效 PyCharm 使用技巧(四) 大家好,距离最近一篇 PyCharm 使用技巧的文章已经过去一月有余,最近虽然也比较忙,但是一直没忘记录下一些我觉得值得分享的小tip.这个系列 ...

  8. 受用一生的高效PyCharm使用技巧(三)

    来源 | Python编程时光(ID:Python-Time) 大家好,这是本系列 PyCharm 的高效使用技巧的第三篇.按照惯例,本次还是分享 5 个. 从前两篇的阅读量.赞赏数和在看数来看,大家 ...

  9. 分享受用一生的高效 PyCharm 使用技巧。

    PyCharm 使用技巧 1 受用一生的高效PyCharm使用技巧(一)2 受用一生的高效PyCharm使用技巧(二)3 受用一生的高效PyCharm使用技巧(三) 16. 快速定位到错误行 前几天打 ...

最新文章

  1. 同时使用多网卡提升树莓派网络利用率
  2. zabbix自动化监控8(2.4)
  3. 推荐算法-聚类-DBSCAN
  4. 语言怎么把横的光标变成竖的_想练字,先会学会控笔吧!基础都不牢,怎么练招式?...
  5. [蓝桥杯2015决赛]积分之迷-枚举(水题)
  6. Java 蓝桥杯 装箱问题
  7. 【好文链接】什么是开环控制?什么是闭环控制?区别在哪里?
  8. 【HTML+CSS网页设计与布局 从入门到精通】第14章-float/position/display属性
  9. 微服务get请求条用_SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
  10. 毕业生Markdown简历模板
  11. 项目管理的过程中如何做好沟通管理
  12. python 中 while 语句的练习题
  13. Help Hanzo(LightOJ - 1197)(欧拉筛 + 思维)
  14. 自媒体博主都用什么剪辑视频_博主和设计师的最佳免费社交媒体图标兆集
  15. 用计算机亩换算成平方,平方换算亩计算器(农村土地面积计算公式)
  16. 最详细的Excel模块Openpyxl教程——基础操作
  17. tshark抓包小结
  18. 2022年ACM杰出会员名单公布:23位华人学者入选
  19. 英语高考计算机阅读答案解析,2021考研英语一阅读理解试题及答案解析(中公考研版)...
  20. windows SDK模拟游戏钢琴的实现(一)

热门文章

  1. 本地打包Docker镜像上传至阿里云远程仓库(一站式脚本)
  2. docker安装kafka消息队列
  3. 2022-2028年中国塑料鞋行业市场发展调研及未来前景规划报告
  4. Django学习之路(一)--初识django
  5. attention seq2seq transformer bert 学习总结 _20201107
  6. 关于Python爬虫原理和数据抓取1.1
  7. [JS] HEX颜色转换成RGBA
  8. php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解
  9. java 抽象方法 虚方法的区别_声明抽象类(纯虚方法)会大幅增加二进制大小
  10. 2022-2028年中国即时通讯市场投资分析及前景预测报告