1. 开胃小菜:Python 能帮你做什么
对应官方文档:1. Whetting Your Appetite 一句话导读:这一章不教语法,只回答一个问题——Python 到底值不值得学、能帮你干掉哪些又啰嗦又重复的脏活累活。
官方这一章很特别:它没有分小节,通篇是散文,连一行代码都没有。你可以把它理解成饭馆端上来的第一碟小菜,目的不是让你吃饱,而是让你「嗯,来兴趣了,想接着点菜」。所以村长也不急着塞语法,先陪你把「Python 是个啥、能干啥、不能干啥」聊明白。
下面的 1.1 到 1.6 是村长为了讲得清楚自己拆的,官方文档里并没有这些编号,别去官网找对应标题。
1.1 为什么叫「开胃小菜」
Whetting Your Appetite 直译是「吊胃口」。whet 本意是磨刀,引申成「把食欲刺激起来」。官方拿它当第一章标题,意思很直白:只给你看 Python 最香的一面,让你产生「我想动手试试」的冲动,真正的正餐从后面才开始。
你可以这样理解:学一门语言最容易被劝退的瞬间,是一上来就被变量声明、编译命令、环境配置糊一脸。所以官方先画饼——批量改文件、写小工具、给 C++ 程序当胶水、快速做个原型,这些事 Python 几行就能搞定;饼画完了,你自然愿意忍受后面那些琐碎的解释器知识。
顺带一提,官方还专门澄清了名字:Python 取自 BBC 喜剧《巨蟒剧团之飞翔的马戏团》,跟爬行动物没关系,文档里玩这个梗甚至是受欢迎的。所以别再问「学 Python 要不要先养条蛇」了。
村长划重点:别在这一章找语法、找代码、找「学完就能写程序」。它唯一的任务是让你相信「这东西值得学」,心态放对,后面才不急。
1.2 Python 适合做什么
官方列了一串场景:批量搜索替换一堆文本文件、按复杂规则重命名整理照片、写个小型自定义数据库、做个专用图形界面或小游戏、给 C/C++/Java 库写测试、给已有程序加一门扩展语言。看着杂,归归类其实就四类活儿。
- 自动化脚本:把「人要点一百次鼠标」变成「机器跑三秒钟」。文件整理、日志清洗、定时抓取、批量改名,都属于这一类。
- 胶水语言:你手上有好几个现成的库、工具、服务,各说各的话,Python 负责把它们粘起来,传数据、调接口、串流程。
- 快速开发 / 原型:想法还不成熟,先跑起来看效果再说。Python 不用编译链接,改完立刻能看结果,试错成本极低。
- 标准库开箱即用:装完 Python 就自带一大堆模块,不用先到处找第三方包就能干正事。
为什么这四类它都擅长?官方给了三个理由,村长翻译成人话:
- 高级数据类型内置,列表、字典这种「灵活数组」张手就来,一句顶 C 里十几行。
- 用缩进来分组,不用写一堆大括号;也不需要声明变量类型,少写一半废话。
- 解释型语言,没有编译、链接这一步;还能开交互模式,边敲边看,顺便当个桌面计算器。
scores = {"小明": 88, "小红": 95, "小刚": 72}
passed = [name for name, score in scores.items() if score >= 80]
print("及格名单:", passed)
print("平均分:", sum(scores.values()) / len(scores))
及格名单: ['小明', '小红']
平均分: 85.0
这段里「字典 + 列表推导 + 求和」一气呵成,就是官方说的「复杂操作用一条语句表达」。同样的逻辑换成 C,光是定义结构体和遍历就要写半天。
村长划重点:Python 慢,但它省的是你的时间。绝大多数脚本和工具,瓶颈在人写得多快、改得多快,不在机器跑得多快。别拿「运行速度」当成选语言的唯一标准。
1.3 标准库开箱即用:电池是自带的
官方说 Python 自带一大堆标准模块,可以直接拿来当程序的地基,或者当学习范例。圈内管这叫「自带电池」——你买回来不用另配电源,插上就能用。
| 模块 | 开箱能干什么 |
|---|---|
pathlib | 路径拼接、遍历目录、读写文本文件 |
json / csv | 读写 JSON、CSV 数据 |
datetime | 日期与时间的计算和格式化 |
re | 正则表达式,做文本匹配与替换 |
sqlite3 | 一个自带的轻量数据库,不用装服务端 |
tkinter | 写个简单的图形界面 |
http.server | 一行命令起一个静态文件服务器 |
import json
from datetime import date
payload = {"课程": "Python 教程", "章节": 1, "完成": False}
print(json.dumps(payload, ensure_ascii=False))
print(date(2026, 1, 1).isoformat())
{"课程": "Python 教程", "章节": 1, "完成": false}
2026-01-01
注意这两行没有额外安装任何东西。这就是「开胃小菜」想让你先尝到的那口鲜:想干点正事,门槛低到几乎为零。
1.4 和 shell、C/C++、Java 怎么取舍
官方花了一整段做对比,核心不是「谁更好」,而是「什么活儿给谁干」。村长整理成一张表:
| 工具 | 擅长 | 不擅长 | 什么时候选它 |
|---|---|---|---|
| Unix shell / Windows 批处理 | 挪文件、改文本、串命令 | 图形界面、游戏、复杂逻辑 | 三五行的系统小操作 |
| Awk / Perl | 文本处理 | 大型程序的结构与维护 | 老脚本维护,或纯文本流 |
| C / C++ | 极致性能、贴近硬件 | 开发慢,改一遍编一遍 | 引擎、驱动、性能命门 |
| Java | 大型工程、强类型、生态稳 | 啰嗦,原型慢,样板代码多 | 长期维护的企业级系统 |
| Python | 快速交付、胶水、自动化、原型 | 纯计算密集场景偏慢 | 上面那四类活儿,以及「先跑起来再说」 |
三条取舍心法:
- shell 脚本适合「移动文件、改文本」,但官方明说它不适合 GUI 和游戏;一旦逻辑开始有分支、有数据结构,就该换 Python。
- C/C++/Java 写个初稿都要走「编写—编译—测试—重编译」的循环,官方原话是「太慢」;Python 省掉编译链接,改完立刻跑。
- Python 比 C 多了错误检查,比 shell 多了支撑大程序的结构,还内置高级数据类型,所以适用面比 Awk 甚至 Perl 更广。
还有一层容易被忽略:Python 是可扩展的。性能要命的那小块,可以用 C 写成模块接进来;反过来,也能把 Python 解释器嵌进 C 程序里,当作扩展语言或命令语言用。所以「Python 慢」并不等于「用 Python 就得全慢」,它可以只负责调度,把重活外包出去。
村长划重点:别用 shell 硬扛复杂逻辑,也别用 C++ 写一次性脚本。工具没有高低,只有合不合适;判断标准是「人等机器,还是机器等人」。
1.5 它不只是脚本,是一门正经语言
官方特意强调:Python 简单,但它是真正的编程语言。它能把程序拆成模块给别的程序复用,比 shell 脚本更适合撑起大项目;它比 C 多了运行时的错误检查;内置的高级数据类型让适用面比 Awk、Perl 更宽。
解释型还带来两个很实在的好处:一是可以开交互模式,随手写个「用完就扔」的小程序,或者自底向上边写边测;二是顺手就能当个桌面计算器。
print(2 ** 10)
print(sum(range(1, 101)))
1024
5050
在交互模式里,这两行长这样,敲完立刻出结果:
>>> 2 ** 10
1024
>>> sum(range(1, 101))
5050
你可以这样理解:别的语言是「先画完整图纸再施工」,Python 是「边搭积木边看像不像」。原型阶段,这个差别就是几小时和几天的差别。
1.6 一个 5 行小例子
说了这么多,上手尝一口。下面这个脚本模拟「批量给文件生成备份名」,正好对应官方开头提的「重命名整理一堆文件」,而且不碰你硬盘上的真实文件,直接复制就能跑。
import pathlib
names = ["报告.txt", "笔记.txt", "照片.png"]
for name in names:
new_name = pathlib.PurePath(name).with_suffix(".bak")
print(name, "→", new_name)
报告.txt → 报告.bak
笔记.txt → 笔记.bak
照片.png → 照片.bak
五行代码,import 一行、数据一行、循环三行,就把「遍历 + 改名 + 输出」全干了。官方说「Python 程序通常比等价的 C/C++/Java 短得多」,这就是最直观的体会。真正的脚本把 PurePath 换成 Path、把 print 换成 rename,就能去整理真实文件了。
顺便说一句,官方在这一章结尾提醒:学语言最好的方式就是边读边敲。所以请把解释器打开,别只看不练。
本章小结
- 这一章是「吊胃口」,官方不分小节、不给代码,只让你建立对 Python 的整体印象。
- Python 最擅长四类活儿:自动化脚本、胶水语言、快速开发原型、标准库开箱即用。
- 它靠内置高级类型、缩进分组、无需声明、解释执行,把程序写得又短又易读。
- 取舍看场景:shell 管简单系统操作,C/C++/Java 管性能与大型工程,Python 管「快」和「粘」;性能瓶颈还能用 C 扩展补上。
- 装完就有
pathlib、json、datetime等一大把模块,不用配环境就能开工。