PyCharm 编辑代码常用操作

上一节我们学习了自定义文件模板,这节我们来点儿干货。本节课所学习的内容都是一些在实际代码开发中经常会用到的小技巧:包括自动导入包、代码补全、格式化代码以及 Scratch files 的使用等等

如果你有使用过其他 IDE 的经验,应该对这些内容不会陌生。初学者则可以通过本节内容对 PyCharm 有更进一步的了解。

1. 自动导入

当我们使用 PyCharm 编写 Python 文件的时候,如果你使用了尚未导入的类,PyCharm 是能够帮助你找到这个类并将其导入到文件中。你可以导入单个类或者整个包,具体操作会取决于你的设置。

自动导入相关设置PyCharm/File -> Preference/Settings -> Editor -> General -> Auto Import
图片描述
如果你的 Python 文件中使用了尚未导入的类,PyCharm 会在未导入的类下面用红色波浪线进行提示,将鼠标停在有问题的代码处,会显示以下提示:
图片描述
如果接受第一个修改建议,直接按⌥⇧⏎(Alt + Shift + Enter), 查看更多修改建议(More Actions),可以 按⌥⏎(Alt + Enter),如下图所示:
图片描述

提示给出了一些选择,根据实际情况进行选择。或者直接按 ⌥⏎(Alt + Enter)

Tips:对于系统自带的包通常会在第一项显示, 直接通过快捷键方式直接导入。

图片描述

如果你想导入的是一个子类的话,你可能会看到下面的提示信息:

图片描述

继续按回车会显示详细信息。

图片描述
选择"selenium webdriver", from selenium import webdriver 这一行代码将添加到文件导入部分。
图片描述

2. 代码自动补全

代码补全可帮助你在可见性范围内完成类、方法和关键字的名称。调用代码补全时,PyCharm 会分析上下文,列出从当前插入位置可以访问的选择建议。代码补全也适用于自定义文件类型。默认按⌃ Space(Ctrl + Space)

代码补全设置PyCharm/File -> Preference/Settings -> Editor -> General -> Code Completion
图片描述
Tips :默认情况下,该选项是选中的。通常在键入代码过程中,给出补全建议是多个,然后根据建议选择合适信息补全,如果不选中, 相应的建议信息不会被显示。

在编写代码的过程中,按 ⌃ Space 可能会提示 “No suggestions”,这代表IDE 在当前可访问的范围内都没找到可建议的字段、参数或变量声明等名称列表,再按一次⌃ Space就会显示适用于当前上下文类、函数、模块和变量的名称。

图片描述

Tips:默认的 Ctrl + Space ,可能会和操作系统切换中英文快捷键冲突,这时我们可以设置另外的快捷键。设置快捷键,可以参考这里

图片描述

3. 格式化代码

大家都知道 Python 对格式要求特别严,格式不对就会出现错误,编译过不了情况。PyCharm 允许你根据在代码样式设置中指定的要求重新格式化代码。

3.1 关于缩进

Python 对缩进是敏感的,判断何时需要缩进,首先要理解物理行和逻辑行

  • 物理行:编辑器中显示的代码,每一行内容是一个物理行。
  • 逻辑行:Python解释器对代码进行解释,一个语句是一个逻辑行。

使用 ; 号将两个或多个逻辑行合并成一个物理行。使用 \ 号连接两个物理行。所以一个物理行不一定是一个逻辑行,而缩进是针对逻辑行的。

图片描述

Tips:在 IDE 中,Python 代码检查是遵循PEP8代码规范的,要求一行逻辑语句就是一行物理行,上图中一行物理行包含多个逻辑行会给出提出信息

图片描述

Python 代码缩进规则:

  • 逻辑行的首行需要顶格,即不缩进。
  • 相同逻辑层保持相同的缩进。所谓逻辑层即为完成同一功能,由多行逻辑行组成的代码块。
  • “:” 标记一个新的逻辑层, 增加缩进进入下一个代码层,减少缩进返回上一个代码层。

PyCharm 缩进设置:
在写代码的时候输入 “:” 号之后,按回车会自动进行缩进。具体的缩进设置在:PyCharm/File -> Preference/Settings -> Editor -> General -> Code Style -> Python
图片描述

Tips : 建议不要使用tab符。空格和 tab 符的显示都是空白,但长度不同。如果混用,代码显示容易意混淆,增加维护及调试的困难、降低代码易读性,所以建议使用 4 个空格做为缩进,这也是约定俗成的书写习惯。

3.2 格式化代码

你可以重新格式化代码的一部分、整个文件、文件组、目录和模块。

相关设置PyCharm/File -> Preference/Settings -> Editor -> General -> Code Style
图片描述

step1:在编辑器中打开文件,按 ⌥ ⌘ L (Ctrl+Alt+L) 或者 在 "Project"工具窗口,右键单击该文件在弹出菜单中选择 Reformat Code。(继续按 Shift ,可以选择更多文件。)

图片描述

图片描述

  • Optimize imports(优化导入):如果要删除未使用的导入、添加缺少的导入或组织导入语句,请选择此选项。
  • Rearrange entries(重新排列条目):如果需要根据代码样式设置中指定的排列规则重新排列代码,请选择此选项。
  • Clean up code(清理代码):选择此选项以运行代码清理检查。
  • Only VCS changed text: (仅仅VCS改变的文件):如果选中此复选框,则重新格式化将仅适用于本地已更改但尚未签入存储库的文件。此复选框仅适用于版本控制下的文件。

step2:上图列出一些代码格式问题,选中优化导入及清理代码项,点击 OK。相应的问题都被修改了。
图片描述

4. TODO 注释

有时,你可能需要标记代码的某些部分供将来参考、优化和改进功能,以及一些可能的更改、要讨论的问题等等。PyCharm 允许添加在编辑器中突出显示、并在 TODO 工具窗口中列出的特殊类型的注释。这样,同团队的开发人员就可以跟踪需要注意的问题。

默认情况下, 注释以 TODO开头,后面接要做事情的描述信息,如下图所示:
图片描述

相关设置:PyCharm/File -> Preference/Settings -> Editor -> TODO
图片描述
Tips: TODOFIXME 是默认的模板,不能被删除。如果你想增加自定义模板,点击“+” 按钮,实际工作中用的不多,这里就不再详述如何增加的过程了。强调一点增加新的模板要有正则表达式的背景知识。

要查看当前项目中所有的 TODO,请打开 View -> Tool Windows -> TODO

图片描述

5. Scratch Files

有时,你可能需要在项目上下文之外写一些代码或者注释。这时候就要用到Scratch Files(暂存文件)与 Scratch(暂存缓冲区)。

Scratch Files: 功能齐全、可运行且可调试的文件,支持语法突出显示、代码完成以及相应文件类型的所有其他功能。例如,在处理一个项目时,你想测试一段代码片断, 这时可以使用Scratch files。

Scratch Buffer: 简单的文本文件,没有任何编码辅助功能。可用于简单的任务列表和备注。

Tips: Scratch Buffer 与 Scratch Files都未存储在项目目录中,保存在IDE安装目录下 ~/Library/Application Support/JetBrains/PyCharm2020.1/scratches

创建Scratch File
在 “Project” 工具栏, 右键点击 Scratches and Consoles -> New -> New Scratch File

图片描述
输入代码并测试
图片描述
创建 Scratch buffer
没有用于创建 New Scratch buffer 操作的专用菜单项,但可以使用"Find Action"弹出窗口 (⌃⇧A /Ctrl + Shift + A) 并运行"New Scratch buffer"操作。
图片描述
PyCharm 创建一个名为buffer1.txt 的文本文件。创建的下一个暂存缓冲区名为buffer 2.txt,等等,最多创建到buffer5.txt。当达到该限制时,它将重新创建buffer1.txt,如果要想保存这五个缓冲区后内容,可以重命名它们。
图片描述

6. 小结

本节讲解了在编写调试代码中一些有用功能,容易理解,操作也不复杂。同时在编程过程中大家也要注意格式、注释的使用,养成好的编程习惯。另外, 大家可能注意到在菜单上一些功能已经标注了快捷键,建议在实际操作中也尝试应用这些快捷键,逐渐用快捷键代替菜单操作。

图片描述