前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >受用一生的高效 PyCharm 使用技巧(二)

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

作者头像
Python进阶者
发布于 2019-04-25 09:53:48
发布于 2019-04-25 09:53:48
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

此系列文章转载MING哥的Python编程时光,感谢大佬坚持更文,让我们get一些Pycharm小技巧。第一篇文章的阅读量还不错,说明大家对 PyCharm 使用技巧还是颇感兴趣的,如果你还没看过,可以下面的传送门,直接访问:受用一生的高效 PyCharm 使用技巧(一)

今天又来给大家推荐一些我自己的用的小技巧,大家择需所取即可。

6. 神一样的调试技巧

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

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

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

答案当然是有。

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

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

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

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

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

然后在这里打勾选中。

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

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

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

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

7. 指定参数执行脚本

你在 Pycharm 运行你的项目,通常是怎么执行的?我的做法是,右键,然后点击 Run,或者使用快捷键 Shift + F10

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python main.py init --local

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

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

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

8. 搜索时过滤测试文件

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

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

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

9. 关闭烦人的灯泡提示

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

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

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

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

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

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

10. 关闭碍眼的波浪线

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
从 ESLint 开始,说透我如何在团队项目中基于 Vue 做代码校验
最近遇到了一个老项目,比较有意思的是这个项目集前后端的代码于一起,而后端也会去修改前端代码,所以就出现了后端用 IntelliJ IDEA 来开发前端项目,而前端用 VSCode 来开发前端项目的情况。于是乎,出现了代码规范的问题,所以就有了这篇文章,整理了一下前端代码校验以及在 Vue 项目中的实践。
用户4456933
2021/07/12
2.5K0
从 ESLint 开始,说透我如何在团队项目中基于 Vue 做代码校验
15分钟快速配置eslint,prettier,lint-staged,husky,commitizen实现前端项目代码规范化
当前,前端项目支持代码规范校验、代码格式化已经必不可少,同时需要支持代码提交前对代码格式校验预检查,这里提供一份最简单的配置供大家参考。
蓓蕾心晴
2022/05/09
4.8K2
15分钟快速配置eslint,prettier,lint-staged,husky,commitizen实现前端项目代码规范化
eslint+prettier学习
配置文件可以从基本配置扩展启用的规则集,不添加则不会继承任何扩展集,仅按照rules下的基本配置来执行。
蓓蕾心晴
2020/09/24
2.2K0
小程序开发格式化代码ESLint、Prettier、husky、lint-stage
依赖 yarn init yarn add --dev babel-eslint@10.0.3 yarn add --dev eslint@6.7.1 yarn add --dev eslint-config-alloy@3.7.1 yarn add --dev eslint-config-prettier@6.10.0 yarn add --dev eslint-plugin-prettier@3.1.4 yarn add --dev prettier@2.0.5 yarn add --dev prett
kif
2023/02/27
2.6K0
【JS】308- 深入理解ESLint
小沈是一个刚刚开始工作的前端实习生,第一次进行团队开发,难免有些紧张。在导师的安排下,拿到了项目的 git 权限,开始进行 clone。
pingan8787
2019/08/06
1.3K0
前端科普系列(5):ESLint - 守住优雅的护城河
【前端科普系列】帮助阅读者了解web前端,主要覆盖web前端的基础知识,但不深入讲解,定位为大而全并非细而精,适合非前端开发的同学对前端有一个系统的认识,能更好的与前端开发协作。尽可能的写成科普类文章,对于前端开发而言,只适合刚入门的新手。
2020labs小助手
2020/10/28
2.5K0
Eslint配置
开发的过程中不同的编辑器,不同的格式化插件对应的代码格式都有差异,这就导致代码风格不一致或是合并冲突。
码客说
2022/09/19
2.9K0
Eslint配置
【TypeScript】014-工程相关
2019 年 1 月,TypeScirpt 官方决定全面采用 ESLint 作为代码检查的工具,并创建了一个新项目 typescript-eslint,提供了 TypeScript 文件的解析器 @typescript-eslint/parser 和相关的配置选项 @typescript-eslint/eslint-plugin 等。而之前的两个 lint 解决方案都将弃用:
訾博ZiBo
2025/01/06
2360
Eslint该如何配置?Eslint使用以及相关配置说明
Eslint在过往接触过的很多开源项目内都有它的身影,习惯一个人写代码了,总觉得它可有可无,但是归根结底,好处还是很多的。
房东的狗丶
2023/02/17
3.7K0
Eslint该如何配置?Eslint使用以及相关配置说明
Eslint使用入门指南
ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的javascript代码检测工具。
Snine
2022/02/21
2.2K0
emo——给项目配置prettier,eslint,husky加强协作规范
给自己的一个初始化项目配置一些规范; Prettier - Code formatter: Prettier - Code formatter ESLint: ESLint Git gitignore: https://git-scm.com/docs/gitignore#_pattern_format
思索
2024/08/15
1190
emo——给项目配置prettier,eslint,husky加强协作规范
制定自己团队的前端开发规范之 eslint
为了大家方便,我将之前长长的 eslint 进行了更换,因为时间原因和使用方面的原因,没将自己的 eslint 上传成 eslint-config,直接使用腾讯的 eslint-config-alloy。
石燕平
2019/12/03
1.7K0
深度讲解TS:这样学TS,迟早进大厂【21】:代码检查
初学者玩转 TypeScript系列,总计 21 期,点赞、收藏、评论、关注、三连支持! TS系列地址: 21篇文章带你玩转ts
江一铭
2022/09/08
2.7K0
ESLint 配置入门
ESLint 是一款检查 JavaScript 程序是否符合特定的规则的工具。比如字符串用单引号还是双引号,tab 缩进用 2 个空格还是 4 个空格还是其他,这些都可以用 ESLint 来规定。
前端西瓜哥
2022/12/21
1.6K0
ESLint 配置入门
ESLint静态代码检查
ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。如果每次在代码提交之前都进行一次eslint代码检查,就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃,可以有效的控制项目代码的质量。
xiangzhihong
2022/11/30
2.2K0
给 eslint 写一个插件
eslint 是非常有名的 linter,地球上每一个 JavaScript 程序员都应该知道。
疯狂的技术宅
2020/12/15
8930
ES Lint 在 React Natvie 项目的应用
1,在开始之前,首先看下官网及资料 官网: https://eslint.org/ 官方 Getting Started [https://eslint.org/docs/user-guide/getting-started](https://eslint.org/docs/user- guide/getting-started) 官方规则说明 https://eslint.org/docs/rules/ 配置rule 说明 https://blog.csdn.net/Cy_Shay/article/details/78217381
张云飞Vir
2020/03/16
5650
使用eslint + prettier + husky + lint-staged 约束项目的最佳实践!
大家好,我是HoMeTown,最近在搭建一个公司与某一线大厂有合作,需要做一个性能极其优化的微信小程序,我们组正好刚从企微项目里抽出身来,所以这个艰巨的任务就交给我们来完成了,首先开了一天会,跟合作方的前端经理PM 确定好了技术选型以及规范,分工细则下来以后,得到项目架构&少许业务开发的任务,优化交给合作方去做,因此这个项目会有很多人参与进来,一个强有力的项目约束是十分重要的!
HoMeTown
2022/10/26
1.9K0
使用eslint + prettier + husky + lint-staged 约束项目的最佳实践!
webpack-dev-server使用报错
参考 https://stackoverflow.com/questions/57724011/how-to-fix-cannot-find-module-webpack-bin-config-yargs
用户6379025
2022/12/26
5010
项目eslint从零到一
eslint在项目里并不太陌生,通常在使用脚手架时,会默认让你安装执行的eslint,当公司项目比较规范时,常常会配置组内统一的eslint规则,eslint帮助我们在开发阶段检查代码是否符合标准规范,统一了我们组内不同项目代码风格,也可以帮助我们养成良好的代码习惯,统一eslint对于项目的可维护性必不可少,今天我们一起学习一下如果改进你项目的规范。
Maic
2022/07/28
1.6K0
项目eslint从零到一
推荐阅读
相关推荐
从 ESLint 开始,说透我如何在团队项目中基于 Vue 做代码校验
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档