2. PyCharm

上一章我们把 Python 环境搭好了,现在缺一个顺手的编辑器。我见过太多新手用记事本写代码,然后跑来问为什么缩进不对。说实话,选一个好 IDE,能帮你省掉一半的麻烦。

PyCharm 是我个人最推荐的 Python IDE,JetBrains 出品,专门为 Python 量身定制。免费社区版就够日常学习用了,专业版支持 Web 开发那些,后面用到了再说。

这一章我会带你走一遍 PyCharm 的安装、基本调校,还有最重要的——调试。调试这东西,刚开始觉得没必要,等你自己写出几百行代码出 bug 的时候就知道有多香了。

下载和安装

去 JetBrains 官网下载 PyCharm Community Edition。安装时一路 Next,注意勾选:

  • 创建桌面快捷方式
  • 将 .py 文件关联到 PyCharm
  • 把启动器加到 PATH(方便以后命令行打开)

装完第一次打开会问要不要导入设置,新手直接选「Do not import settings」就行。然后会看到一个欢迎界面,让你选 UI 主题——我建议选 Darcula,深色主题写代码眼睛舒服些。

我的小习惯:安装完成后,我会先把项目目录整理好。在欢迎界面点「New Project」,Location 选一个干净的位置,不要放在桌面。很多人项目路径带中文或空格,运行时各种诡异报错,我都见过好几次。

调校字体,别让眼睛受罪

默认字体一般是 12 或者 13,我建议至少调到 14。尤其是还接外接显示器的话,小字体看半小时就酸了。

设置路径:File → Settings → Editor → Font。

  • Font:我推荐 Fira Code 或者 JetBrains Mono,等宽而且带连字。没有的话用 Consolas 也行。
  • Size:14~16,看你自己屏幕分辨率。
  • Line spacing:1.2~1.4,行间距太挤影响阅读。
踩坑提示:我曾经把字体调成宋体,结果代码里的一些字符显示不对,特别是中文注释和英文混排时。一定用等宽字体,别用系统默认的宋体/微软雅黑。

快捷键,趁手才是王道

PyCharm 的快捷键非常多,我建议刚开始只记住几个高频的,后面慢慢加。设置路径:File → Settings → Keymap。

这里有个技巧:如果你之前用 VS Code 或者 Sublime,可以直接在 Keymap 下拉里选对应的方案,PyCharm 会自动映射。我个人还是用默认的 Eclipse / IntelliJ 方案,因为习惯了。

下面列一下你最先需要背下来的几个:

操作 快捷键(Windows / Linux) 快捷键(macOS) 说明
运行当前文件 Ctrl + Shift + F10 Ctrl + Shift + R 快速跑脚本
调试当前文件 Shift + F9 Ctrl + Shift + D 进入调试模式
设置 / 取消断点 Ctrl + F8 Cmd + F8 行号后面点一下也行
单步跳过 F8 F8 不进入函数内部
单步进入 F7 F7 会跳进调用函数里
恢复执行 F9 Cmd + Alt + R 继续跑到下一个断点
搜索全局 Ctrl + Shift + F Cmd + Shift + F 按文件名、内容都能搜

你觉得快捷键记不住?没关系。PyCharm 的菜单里每个操作后面都标着快捷键,多按几次肌肉记忆就有了。

其他几个常用设置

除了字体和快捷键,还有几个地方我每次新装 PyCharm 都会调:

  • 自动导入:Settings → Editor → General → Auto Import,勾选「Add unambiguous imports on the fly」,这样你写 os 然后按一下回车,PyCharm 自动帮你加 import os。
  • 文件编码:Settings → Editor → File Encodings,Global Encoding 和 Project Encoding 都设成 UTF-8。我之前遇到过一个同事文件编码用 GBK,代码发到我电脑上全是乱码……所以统一 UTF-8 省事。
  • 代码样式:Settings → Editor → Code Style → Python,把缩进调成 4 空格(Python 官方标准)。Tab 那个选项不要勾“Use tab character”。
  • 主题:除了 Darcula,你也可以去 Plugins 市场搜“Material Theme UI”,安装后有很多配色方案,选一个自己喜欢的。
再说一个隐藏技巧:PyCharm 的 live template。在 Settings → Editor → Live Templates 里,你可以自定义缩写。比如我设了一个 main 展开成 if __name__ == '__main__':\n pass。写多了效率提升很明显。

调试——写代码的一半乐趣

调试是我认为 PyCharm 最强大的功能,没有之一。你想想看,写代码说白了就是在 debug,你把 bug 一个个消灭掉,程序就对了。

调试流程其实很简单,我画了张图帮你理清关系:

PyCharm 调试核心流程 设置断点 启动调试 程序暂停在断点 调试操作 Step Over (F8) Step Into (F7) Step Out (F7+F7) Resume (F9)

咱们拿一段代码实际走一遍。新建一个 Python 文件,写点东西:

def divide(a, b):
    result = a / b
    print(f"结果是: {result}")
    return result

x = 10
y = 0
divide(x, y)

嗯,这代码一运行肯定报 ZeroDivisionError。咱们来调试找问题。

  1. 在 result = a / b 这一行的行号旁边点一下,出现一个红色圆点——这就是断点。
  2. 右键编辑器,选 Debug(或者点右上角的绿色小虫子图标)。
  3. 程序停在断点处,行号变蓝。底部出现 Debug 窗口。
  4. 按 F8(Step Over),执行完除法,你会在 Variables 面板里看到 b 的值为 0。
  5. 这时候你就明白了,除数不能为 0。在 Debug 窗口底部有个小计算器图标,点一下可以打开 Evaluate Expression(求值表达式),输入 b == 0,结果是 True。
  6. 然后修复代码:加上一个条件判断。
要点:调试不是只用来找崩溃,更多时候是看变量的中间值和你预期对不对。我经常写复杂算法时,每几步设一个断点,看变量变化,逻辑错误一眼就能发现。

再补充几个调试时你会遇到的实用功能:

  • 条件断点:右键断点,可以输入条件表达式。比如只有 b == 0 时断点才触发,其他情况直接跳过。这个在大循环里特别好用,不然要按几十次 Resume。
  • 变量监视:选中一个变量按 Alt + F8(或者右键 Add to Watches),它会一直在 Watches 窗口显示当前值,不用每次到断点重新看。
  • 快速查看:写代码时把鼠标悬停在变量上,会出现小卡片显示当前值——算是一个迷你版调试。
避坑提醒:我曾经调试一个循环 1000 次的程序,在循环里设断点后忘了关,结果跑了 10 分钟才意识到。记住:调试结束后一定要点那个红色方块「Stop」按钮关掉调试器,否则 PyCharm 会一直在后台挂起。另外,不要在 print() 或者其他内置函数本身设断点,那种断点每次打印都停一次,非常烦。

本章小结

PyCharm 安装和基本设置不难,但调试这一块我建议你花点心思。怎么检验你学没学会?找一份你自己之前写过的小程序,故意放一个 bug,然后用调试器找到它。亲自走一遍,比看十遍教程都管用。