来源 | Python编程时光(ID:Python-Time)

大家好,这是本系列 PyCharm 的高效使用技巧的第三篇。按照惯例,本次还是分享 5 个。

从前两篇的阅读量、赞赏数和在看数来看,大家对这个系列给予了肯定和期待,我也尽量不辜负大家,尽我所能写一些对你可能有用的技巧,因为每篇都要凑足 5 个才能发布,所以更新会慢一点。如果技巧对大家有帮助,希望你能帮忙转发扩散,或者点个在看。

如果你还未看过前两篇,可以点此进行查看。

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

11. 一键进行代码性能分析

在 Python 中有许多模块可以帮助你分析并找出你的项目中哪里出现了性能问题。

比如,常用的模块有 cProfile,在某些框架中,也内置了中间件帮助你进行性能分析,比如 Django ,WSGI。

做为Python 的第一 IDE, PyCharm 本身就支持了这项功能。而且使用非常方便,小白。

假设现在要分析如下这段代码的性能损耗情况,找出到底哪个函数耗时最多

import time

def fun1():
    time.sleep(1)

def fun2():
    time.sleep(1)

def fun3():
    time.sleep(2)

def fun4():
    time.sleep(1)

def fun5():
    time.sleep(1)
    fun4()

fun1()
fun2()
fun3()
fun5()

点击 Run -> Profile '程序' ,即可进行性能分析。


运行完毕后,会自动跳出一个性能统计界面。


性能统计界面由Name、Call Count、Time(ms)、Own Time(ms) ,4列组成一个表格,见下图。

  1. 表头Name显示被调用的模块或者函数;Call Count显示被调用的次数;Time(ms)显示运行时间和时间百分比,时间单位为毫秒(ms)。

  2. 点击表头上的小三角可以升序或降序排列表格。

  3. 在Name这一个列中双击某一行可以跳转到对应的代码。

  4. 以fun4这一行举例:fun4被调用了一次,运行时间为1000ms,占整个运行时间的16.7%

点击 Call Graph(调用关系图)界面直观展示了各函数直接的调用关系、运行时间和时间百分比,见下图。


左上角的4个按钮表示放大、缩小、真实大小、合适大小;

  1. 箭头表示调用关系,由调用者指向被调用者;

  2. 矩形的左上角显示模块或者函数的名称,右上角显示被调用的次数;

  3. 矩形中间显示运行时间和时间百分比;

  4. 矩形的颜色表示运行时间或者时间百分比大小的趋势:红色 > 黄绿色 > 绿色,由图可以看出fun3的矩形为黄绿色,fun1为绿色,所有fun3运行时间比fun1长。

  5. 从图中可以看出Test.py直接调用了fun3、fun1、fun2和fun5函数;fun5函数直接调用了fun4函数;fun1、fun2、fun3、fun4和fun5都直接调用了print以及sleep函数;整个测试代码运行的总时间为6006ms,其中fun3的运行时间为1999ms,所占的时间百分比为33.3%,也就是 1999ms / 6006ms = 33.3%。

12. 使用Git做版本控制

按照如下提示点击 Git 仓库配置


接着输入仓库地址


点击 Test,测试连通性,会要求输入密码


若一切顺利,则会看到如下界面


测试连接成功后,点击 Clone 就可以克隆下来了。

对于以前使用 Git 命令来管理的,现在可以直接使用 PyCharm 的菜单栏来操作,这些功能已经可以满足大多数人的日常需求了,应该是够用了。


13. Tab轻松转空格

在团队协作中,你难免会动到别人编辑的文件,有的人喜欢做tab做缩进,有的人喜欢用四个空格做缩进。(个人推荐使用tab转四个空格)

但是在同一个Python文件模块里,tab 和 四个空格缩进两种风格是不能共存的。这就需要你按照该文件原来的缩进风格来进行编码,在 Pycharm 里,可以设置自动检测原文件的缩进风格来决定当你使用tab键缩进的时候,是TAB还是四个空格。

在图示位置打勾即可开启自动检测。


上面是对一个旧的 Python 模块进行修改时,如何决定当前编辑的缩进方式。

而对于新建模块,默认的缩进方式,是如何确定的?

如下图,若在 Use tab character 打上勾,则你新建一个 Python 后,就会使用 TAB 进行缩进,反之,则使用四个空格进行缩进。


14. 一次注册,永久激活

PyCharm 有分两个版本,一个是社区版(免费功能有限),一个是专业版(有一些增强功能),详细差异你可以参考这个图,一般来说,社区版用作学习用途是没有问题的。


如果需要使用专业版,网上也有一些注册服务器使用,非常方便,缺点是过一段时间,可能就会失效。这里有一种一劳永逸的方法,但可能仅对早期的 PyCharm 版本有效,可以实现永久激活(到 2099 / 2100年,一定意义上是永久了吧)。

经过我个人亲测,以下破解jar包,Windows 中在 2017.1.5 版本中有效,Mac OS 在2018.2.4 版本中有效。如果你在自己的版本中尝试无效,可以尝试切换至我的版本。

以下将分别以 Mac OS  和  Windows两个主流系统做演示。

第一步

下载jar包: 此jar包的目的就是让截获截止时间并骗过 PyCharm;

Windows:https://pan.baidu.com/s/1dwhT6ptvi3j45i4sSZLvVA

密码:lvyv

Mac OS:https://pan.baidu.com/s/1dwhT6ptvi3j45i4sSZLvVA,

密码:5o4s

第二步

若是 Windows 系统,请找到并进入你的 PyCharm 安装启动目录(以我的为例):E:\Program Files\JetBrains\PyCharm 2017.1.5\bin

将第一步下载的 jar 包放入这个目录,并打开如下两个以 vmoptions 后缀结尾的文件:


添加如下这一行(请根据你的实际安装目录自行调整)


若是 Mac OS 系统,请找到并进入你的 Pycharm 安装启动目录(以我的为例)

将第一步下载的 jar 包放入这个目录


并打开如下一个以 vmoptions 后缀结尾的文件:


第三步

随意填写个激活码,如果此前已经有写过,这步可直接跳过到第四步,如果没有写过,你就填这个吧。

点击:Help -> Register -> Activation Code

BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9XSwiaGFzaCI6IjQ3NzU1MTcvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-iygsIMXTVeSyYkUxAqpHmymrgwN5InkOfeRhhPIPa88FO9FRuZosIBTY18tflChACznk3qferT7iMGKm7pumDTR4FbVVlK/3n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm93n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9

第四步

若是 Windows 系统,重启 PyCharm 后,查看激活信息:Help -> About


如果是 Mac  OS 系统,重启 PyCharm 后,查看激活信息:PyCharm -> About PyCharm


另外,以上仅做交流和个人学习使用,请勿商用,有能力的朋友还是希望多支持正版!

15. 源码文档,快速预览

Ctrl + 鼠标左键 (Mac 上是:Command + 鼠标左键),可以实现函数跳转查看源码, 这几乎是每一个 PyCharmer 都会的一个惯用技巧。

这里再另外介绍两个类似的小技巧,快速 查看函数文档 和 预览源代码 。

在函数的开头处,使用三个引号 " 包含的内容,叫做函数文档 (DocString)。

在编写代码时,顺便写好函数的接口文档,是一个很好的编码习惯。它介绍了该函数的参数类型及说明,返回值类型及范例,写得好一点的还会写出 几个简单的 Example Usage 有助于理解使用。这边随便截一个 Werkzeug 的例子。


假如我们在使用这个类的时候,忘记了这个用法,可以按住 Ctrl + q(Mac 的快捷键暂未找到),在当前页面就可以快速预览 LocalStack 的接口文档。


同样的,如果你对这个类或者函数的代码逻辑感兴趣,也可以使用快速预览的方式在当前页面展示源代码。快捷键是:Ctrl + shift + i (Mac:Command + shift + i)。效果如下


如果 PyCharm 检测到的同名函数有多个,可以点这里进行切换选择查看


这两个快捷键比起使用 Ctrl + 鼠标左键 跳进源代码来说,更加方便,,就像微信小程序一样,用完即焚,不会新产生一个标签页,也不需要来回跳转页面。

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

(*本文仅代表作者观点,转载请联系原作者)

CTA核心技术及应用峰会

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心重磅开启,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。议程设置请请识别海报二维码查看。

目前CTA峰会倒计时3天!还没有拿到入场券的小伙伴可以识别海报二维码,即刻抢购。你也添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。

点击阅读原文,了解CTA核心技术及应用峰会」

受用一生的高效PyCharm使用技巧(三)相关推荐

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

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

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

    大家好,这是本系列 PyCharm 的高效使用技巧的第三篇.按照惯例,本次还是分享 5 个. 从前两篇的阅读量.赞赏数和在看数来看,大家对这个系列给予了肯定和期待,我也尽量不辜负大家,尽我所能写一些对 ...

  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 使用技巧 !

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

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

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

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

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

  8. 受用一生的高效 PyCharm 使用技巧(二)pycharm 指定参数运行文件

    https://mp.weixin.qq.com/s/Ii0-qHUXayTPb-K-17hmQQ 在介绍技巧之前,有些话想声明一下,这个系列的一些小技巧,对于一些重试用户来说可能是小 case,如果 ...

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

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

最新文章

  1. 元组、列表、字典及集合练习
  2. max7456 C语言,用于MAX7456随屏显示器SPI
  3. 使用UrlRewrite时修改form的action属性问题
  4. ubuntu通过pem连接服务器
  5. 特别实用的 6 款 Python 特殊文本格式处理库推荐
  6. C++并发编程线程间共享数据std::future和sd::promise
  7. Kafka分区分配策略(2)——RoundRobinAssignor和StickyAssignor
  8. openpyxl 绘制饼形图_openpyxl3.0官方文档(13)—— 饼图
  9. 构建之法 第三次心得
  10. VC++学习(15):多线程
  11. 计算机导论布尔运算,计算机导论第2讲-符号化-计算化-自动化.pdf
  12. ubuntu12.04 安装 setuptools
  13. mybatis 新增语句_mybatis增删改查
  14. 在windows server 2003服务器上提供NTP时间同步服务
  15. meta http-equiv(属性详解)
  16. ar5b97无线网卡驱动linux 版下载,atheros ar5b97驱动
  17. 为什么大厂们 一边裁员,一边招人。。
  18. P3426 [POI2005]SZA-Template(kmp+dp)
  19. 模拟电路36(理想运算放大器——积分电路、微分电路4)
  20. 浅谈游戏数据分析------留存篇一---留存折损

热门文章

  1. 【数字图像处理】二值图像行程编码
  2. Linux下CAN总线通信调试记录
  3. [Java]简单易懂的并发教程
  4. Polaris Office for Mac(经典办公套件)
  5. 新生研讨课--无人机技术
  6. 从1到无穷大—机器学习篇
  7. 【建筑性能分析入门笔记】建筑能耗建模(1)
  8. java实现置顶功能
  9. 《职场正能量》读后感
  10. sqlite编辑器 linux,SQLite3 ARM平台交叉编译