《Python编程入门》目录
这一页是全书的总入口。它不只列出章节标题,还给出三条可以照着走的阅读路径,以及每一节的定位说明。如果你不确定从哪开始,先读下面的「读者画像与前置知识」,再对照「学习路径」选一条;如果你已经有明确目标,可以直接跳到「分部分章节」按编号定位。
全书结构是:前置 3 篇 + 正文 18 章 54 节 + 附录 4 篇,共 61 篇。正文按学习曲线分为四个部分,每一部分解决一类问题。
如何使用本目录
这一页有三种用法,取决于你此刻的状态:
如果你刚拿到这本书,按顺序读「本书定位」「读者画像与前置知识」「学习路径」三节,用五分钟决定自己的入口章节。不要跳过这一步,选错入口比读得慢更浪费时间。
如果你已经读到一半,想查某一节在哪,直接看「分部分章节」里对应部分的表格。每一行都有一句话说明,可以帮你确认是不是你要找的那一节,避免点进去再退出来的反复。
如果你把这本书当手册用,主要会用到「前置与附录」和每一节末尾的小结。附录 A 到 D 分别覆盖语法、标准库模块、第三方库资源与常见错误,是查阅频率最高的四篇。
本书定位
这是一本面向零基础读者的 Python 系统教材。它的目标不是让你「听说过 Python」,而是让你能够独立地用它写出结构清晰、可测试、能交付的程序。
它有三个刻意的取舍。第一,重原理而非重清单:讲清楚一个特性为什么存在、什么时候该用,比罗列它能写什么更重要。第二,示例可运行:书中代码都在 Python 3.14.6 上实跑过,输出是真实结果,而不是伪代码。第三,不回避进阶内容但也不炫技:装饰器、生成器、异步、类型系统这些能力会认真讲,但会反复提醒你把可维护性放在巧妙性之前。
如果你需要的是一份「30 分钟速成 Python」的教程,这本书可能过于啰嗦;如果你希望一次把基础打牢、之后不必反复回炉,那它的节奏是合适的。
读者画像与前置知识
不同类型的读者,起点和建议路径差别很大。可以先在下面找到最接近自己的那一类。
完全新手(几乎没写过代码):建议按顺序从第 1 章读到第 18 章,不要跳章。语言的知识是层层叠加的——不理解列表与字典就读不懂推导式,不理解可迭代协议就读不懂生成器与异步。唯一的前置是能用命令行、知道文件与目录是什么。请把每一节的示例亲手敲一遍,「跑通」比「读懂」重要得多。
有其他语言基础(Java/C#/Go/Rust 等):可以快速扫过第 3、4 章,把主要精力放在第 5 章之后——模块、类、异常、迭代协议与类型系统。请特别留意三处与静态语言差异最大的地方:变量是名字绑定而非内存盒子(3.3)、函数是一等公民且默认参数定义时求值一次(4.2、4.3)、缩进是语法而非格式(1.1)。第 12、13 章的并发模型对你来说信息密度最高。
会写 Python 但没系统学过:你可能凭经验知道「要用 with 打开文件」「多线程没变快是因为 GIL」,但不知道机制。最值得读的是第二部分(第 5–9 章)与第三部分(第 10–13 章),它们解释的正是你写复杂代码时卡壳的那些地方。第 9 章的类型注解与第 14 章的测试,是把脚本思维升级成工程思维的关键。
学习路径
下表给出三条典型路径。三条路径不互斥,可以先速成再补齐。
| 路径 | 适合谁 | 读哪些 | 预计用时 |
|---|---|---|---|
| 完整通读 | 零基础 / 想重建知识结构 | 第 1 章至第 18 章顺序读,每节动手写代码 | 9–10 周(每天 1 小时) |
| 快速上手 | 有其他语言基础、急于能干活 | 2.1、2.3、3.2、4.1、5.1、6.1、10.2、14.1 共 8 节 | 3 周 |
| 参考手册 | 已会用、需要随时查 | 按目录定位章节,优先用每节「本节目标」与「小结」 | 按需 |
两条补充建议:无论选哪条路径,都请完整跑通第 2 章的示例,把环境与虚拟环境配好;如果时间允许,第 12 章关于 GIL 与并发的部分值得反复读,它是理解「为什么我的程序没变快」的钥匙。
一份可执行的八周计划
上面三条路径偏原则。如果你希望有一份可以直接照着打勾的安排,下面这份八周计划可以作为起点(按每天投入一小时估算),它对应的是「完整通读」路径。
| 周次 | 主要任务 | 完成标志 |
|---|---|---|
| 第 1 周 | 第 1–2 章:语言定位、安装与项目起步 | 能独立建好虚拟环境并运行第一个脚本 |
| 第 2 周 | 第 3–4 章:数据类型、控制流与函数 | 能用内置容器与函数写出一段结构清晰的逻辑 |
| 第 3 周 | 第 5–6 章:模块与包、类与对象 | 能把代码拆成多个模块,并用类建模 |
| 第 4 周 | 第 7–8 章:异常、迭代器与装饰器 | 能写出健壮的异常处理与一个自用的装饰器 |
| 第 5 周 | 第 9–10 章:类型注解、文本与文件处理 | 能给代码加上类型注解,并正确读写带编码的文件 |
| 第 6 周 | 第 11–12 章:时间日志 CLI、并发模型 | 能写出带日志与参数解析的命令行工具 |
| 第 7 周 | 第 13–15 章:异步、测试与打包 | 能写出异步程序,并把自己的工具打包发布 |
| 第 8 周 | 第 16–18 章:Web 开发、实战与收尾 | 能独立完成一个可部署的小项目 |
这份计划的关键不在于准时,而在于每周都有产出。语言知识如果不落到代码上,遗忘速度会非常快。如果某一周的任务没有完成,宁可延长这一周,也不要为了赶进度跳过动手环节。
每周结束时,可以用三个问题自查:这一周学到的写法,我在自己的代码里用过吗?遇到报错时,我是自己读懂的还是靠搜索绕过去的?如果现在合上书,我能向别人讲清楚这一周最核心的那个概念吗?三个问题里只要有一个答不上来,就值得回头补一补再往下走。
如果你的时间只有一半,可以把第 7 周与第 8 周压缩,先跳过打包发布与部署的细节——它们更接近「按需查阅」的内容,等到项目里真的用上再回来补即可。
三条路径之外的三条提醒
无论选哪条路径,有三条提醒能显著影响你的阅读体验:
不要只读不写。 这本书的示例都很短,正是为了让你能随手敲一遍。只读不写,你收获的会是「我好像懂了」的错觉;敲过一遍、报过错、改对过,才是真的懂了。
不要跳过第 2 章的环境配置。 后面每一节的示例都依赖它,地基不稳,后面每一步都会变得别扭。
不要用搜索绕开报错。 初学阶段最容易养成、也最难戒掉的习惯,是一遇到报错就复制去搜。先自己读一遍报错信息,实在想不通再查——读懂报错是一项能陪你很久的能力。
四个部分之间的依赖关系
四个部分不是平行关系,而是层层依赖的。下面这张表说明每一部分依赖什么、又被谁依赖,方便你判断能否跳过某一部分:
| 部分 | 依赖 | 被依赖 | 能否跳过 |
|---|---|---|---|
| 第一部分 语言基础 | 无 | 全部后续部分 | 有其他语言基础者可速读 |
| 第二部分 语言核心机制 | 第一部分 | 第三、四部分 | 不建议跳过 |
| 第三部分 标准库精要 | 第一、二部分 | 第四部分 | 可按方向选读 |
| 第四部分 工程与交付 | 第一、二、三部分 | 无 | 有项目经验者可挑读 |
一个实用的判断原则是:第二部分(语言核心机制)是绕不过去的地基,其余部分都可以根据你的实际工作来取舍。如果你的方向是 Web 后端,第三部分的并发与异步(第 12、13 章)与第四部分的 Web 开发(第 16 章)优先级最高;如果你主要做数据与自动化,第 10、11、17 章更急,打包发布可以往后放。
分部分章节
下面按四个部分列出全部 18 章 54 节,每一行给出编号、标题与一句话说明。
表格里的编号规则是「章.节」,例如 12.1 表示第 12 章第 1 节。点击标题即可进入该节正文。每个部分开头都有一段导读,说明这一部分在整个学习曲线中的位置;如果你只想知道某节讲什么,直接看表格第三列的说明即可。
需要提醒的是,正文的每一节都遵循「本节目标 → 正文小节 → 小结 → 衔接下一节 → 阅读导航」的五段式结构,所以即使你从中间某节切入,也能通过开头的目标说明快速建立上下文,不必担心前情缺失。
第一部分:语言基础(第 1–4 章)
这一部分解决「是什么、怎么装、怎么写」三个前置问题,读完能独立写出并运行结构清晰的小程序。
节奏上,这一部分刻意放慢了。第 1 章讲历史、版本与执行模型,看起来与写代码无关,但它决定了你后面怎么看导入、怎么理解「解释型 vs 编译型」。第 2 章的环境配置建议一次做对,后面每一节的示例都依赖它。第 3、4 章是语法密度最高的两章,可以边读边查,不必强求记住所有细节。
| 编号 | 章节 | 说明 |
|---|---|---|
| 1.1 | Python 的诞生与设计哲学 | 从 Guido 的业余项目与 ABC 的教训讲起,理解设计哲学如何塑造语言行为 |
| 1.2 | Python 2 到 3、发布节奏与版本选择 | 梳理 2 到 3 断代的代价、发布节奏,以及今天该选哪个版本 |
| 1.3 | 解释器实现与执行模型 | 区分解释器实现,看懂源码到字节码再到执行的完整链条 |
| 2.1 | 安装 Python 与虚拟环境 | 装好 Python,理解虚拟环境为什么必须用 |
| 2.2 | 编辑器、REPL 与第一个脚本 | 配好编辑器,用 REPL 探索并写出第一个脚本 |
| 2.3 | 项目结构与 pyproject.toml 初探 | 理解项目布局与配置文件,为后续所有章节打好地基 |
| 3.1 | 数值、字符串与 f-string 格式化 | 掌握数字、字符串与格式化,理解运算符与浮点精度 |
| 3.2 | 列表、元组、字典与集合 | 吃透四种内置容器的差异、适用场景与复杂度 |
| 3.3 | 可变与不可变、引用语义与拷贝 | 分清可变与不可变,理解引用语义、深浅拷贝与共享陷阱 |
| 4.1 | 条件、循环与推导式 | 用条件、循环与推导式把重复逻辑写得既短又清楚 |
| 4.2 | 函数:参数传递、默认值与作用域 | 掌握参数传递规则、默认值的陷阱与 LEGB 作用域 |
| 4.3 | 一等函数、lambda 与 functools | 把函数当值用:lambda、高阶函数与 functools 工具箱 |
第二部分:语言核心机制(第 5–9 章)
这一部分是全书的核心。它解释 Python 内部「东西是怎么运转的」:模块怎么被找到、属性怎么被查到、异常怎么传播、迭代器怎么工作、类型系统怎么被检查。是从「会用」迈向「懂原理」的分水岭。
| 编号 | 章节 | 说明 |
|---|---|---|
| 5.1 | import 机制与模块搜索路径 | 理解 import 到底做了什么、模块从哪里被找到 |
| 5.2 | 包、init.py 与相对导入 | 用包组织代码,掌握 init.py 与相对导入的规则 |
| 5.3 | 循环导入、命名空间包与惰性导入 | 诊断循环导入,认识命名空间包与惰性导入 |
| 6.1 | 类、实例与属性查找(MRO) | 从类与实例出发,理解属性查找顺序与 MRO |
| 6.2 | 继承、组合与 dataclass | 在继承与组合之间取舍,用 dataclass 减少样板代码 |
| 6.3 | 魔术方法与运算符重载 | 通过魔术方法让自定义类型自然融入语言 |
| 7.1 | 异常层次与 try/except/else/finally | 理清异常层次,正确使用 try/except/else/finally |
| 7.2 | 自定义异常、异常链与错误设计 | 设计自己的异常体系,用异常链保留根因 |
| 7.3 | 上下文管理器与 with | 用 with 与上下文管理器保证资源一定被释放 |
| 8.1 | 可迭代协议、迭代器与生成器 | 理解可迭代协议,用生成器写出惰性且省内存的代码 |
| 8.2 | 生成器进阶:send / yield from 与惰性管道 | 用 send、yield from 与惰性管道组合出数据处理流 |
| 8.3 | 装饰器原理与实战 | 从原理到实战掌握装饰器,写出可复用的横切逻辑 |
| 9.1 | 类型注解语法与 pyright / mypy | 掌握类型注解语法,用 pyright / mypy 在运行前发现错误 |
| 9.2 | 泛型、Protocol、TypedDict 与 PEP 695 | 用泛型、Protocol、TypedDict 与 PEP 695 表达复杂约束 |
| 9.3 | 运行时校验与 Pydantic 入门 | 在边界做运行时校验,用 Pydantic 把不可信数据变可信 |
第三部分:标准库精要(第 10–13 章)
这一部分离开语法,进入日常真正会用的工具:文本与正则、文件与编码、时间与日志、命令行、并发与异步。它的主题是「不装任何第三方库,也能把大部分活儿干完」。
| 编号 | 章节 | 说明 |
|---|---|---|
| 10.1 | 字符串处理与正则 re | 掌握字符串处理与正则,写出可靠的文本清洗逻辑 |
| 10.2 | 文件 I/O、pathlib 与编码 | 用 pathlib 处理路径与文件 I/O,彻底搞懂编码问题 |
| 10.3 | JSON / CSV / TOML 与序列化安全 | 读写 JSON / CSV / TOML,并避开反序列化的安全隐患 |
| 11.1 | datetime、zoneinfo 与时区 | 正确处理 datetime 与时区,避开「天真时间」的坑 |
| 11.2 | logging 与结构化日志 | 用 logging 搭建分级、可结构化输出的日志 |
| 11.3 | argparse 与命令行工具 | 用 argparse 把脚本变成带帮助与校验的命令行工具 |
| 12.1 | GIL 与线程/进程模型 | 理解 GIL,判断一个任务该用线程、进程还是异步 |
| 12.2 | concurrent.futures 与 multiprocessing | 用 concurrent.futures 与 multiprocessing 做真正的并行 |
| 12.3 | socket、HTTP 客户端与 requests/httpx | 用 socket 与 HTTP 客户端访问网络,理解请求的底层 |
| 13.1 | async/await 与事件循环 | 理解 async/await 与事件循环,写出高并发 I/O 代码 |
| 13.2 | asyncio 任务、并发与超时取消 | 用任务、并发原语与超时取消组织异步流程 |
| 13.3 | 异步生态与常见陷阱 | 认识异步生态版图,避开阻塞事件循环等常见陷阱 |
第四部分:工程与交付(第 14–18 章)
最后一部分把前面的知识组织成真正的工程:测试、打包、Web 开发与实战。它回答的是「代码写完之后,怎么保证它是对的、怎么把它交付出去、怎么在真实项目里落地」。
| 编号 | 章节 | 说明 |
|---|---|---|
| 14.1 | pytest 基础与断言 | 用 pytest 写断言清晰、易于维护的测试 |
| 14.2 | fixture、参数化与 mock | 用 fixture、参数化与 mock 覆盖复杂依赖与边界 |
| 14.3 | 覆盖率、ruff/mypy 与 CI 门禁 | 把覆盖率、ruff/mypy 与 CI 门禁接进开发流程 |
| 15.1 | pyproject.toml 与依赖管理 | 用 pyproject.toml 声明依赖,掌握现代依赖管理 |
| 15.2 | 构建 wheel、入口点与发布 PyPI | 构建 wheel、配置入口点,把包发布到 PyPI |
| 15.3 | 版本约束、锁定与可复现构建 | 用版本约束与锁定文件实现可复现构建 |
| 16.1 | HTTP 与 WSGI / ASGI | 理解 HTTP 协议与 WSGI / ASGI 的同步异步之分 |
| 16.2 | FastAPI 快速上手 | 用 FastAPI 从零写出第一个带文档的 API |
| 16.3 | 数据校验、依赖注入与数据库访问 | 在 Web 项目里做数据校验、依赖注入与数据库访问 |
| 17.1 | 文件批处理与办公自动化 | 用脚本批处理文件,把重复的办公劳动自动化 |
| 17.2 | 网络爬虫基础与合规边界 | 掌握爬虫基础,并守住合法合规的边界 |
| 17.3 | 数据分析入门 | 用 pandas / polars 完成一次完整的数据分析 |
| 18.1 | 从零构建一个完整项目 | 从零构建一个完整项目,把全书知识串起来 |
| 18.2 | 性能剖析与优化入门 | 学会剖析性能瓶颈,做有依据的优化 |
| 18.3 | 学习路径与生态选型 | 规划后续学习路径,掌握生态选型的方法 |
前置与附录
前置三篇负责交代背景与体例,附录四篇负责速查与排错。建议第一次通读时先跳过附录,遇到具体问题再回来翻。
| 位置 | 标题 | 说明 |
|---|---|---|
| 序 | 《Python编程入门》序 | 为什么还值得系统学 Python,以及本书的写法取舍 |
| 前言 | 《Python编程入门》前言 | 目标读者、前置知识、体例说明与版本口径 |
| 目录 | 《Python编程入门》目录 | 全书导航与学习路径(即本页) |
| 附录 A | 附录 A:Python 语法速查表 | 字面量、容器方法、推导式、参数形态与类型注解的集中速查 |
| 附录 B | 附录 B:标准库常用模块速查 | 按用途分组的标准库模块清单与对应章节 |
| 附录 C | 附录 C:常用第三方库与资源 | 第三方库的选型参考与学习资源 |
| 附录 D | 附录 D:常见错误与解决方案 | 高频报错与疑难困惑的排查思路 |
常见问题速查
下面是读者最常问的几个「该读哪一节」的问题,直接给答案:
| 你的问题 | 去哪一节 |
|---|---|
| 中文读出来是乱码 | 10.2 文件 I/O、pathlib 与编码 |
| 装不上、虚拟环境搞混了 | 2.1 安装 Python 与虚拟环境 |
| 多线程为什么没变快 | 12.1 GIL 与线程/进程模型 |
| 打包发不出去、发布失败 | 15.2 构建 wheel、入口点与发布 PyPI |
| 改了一个变量,另一个也跟着变 | 3.3 可变与不可变、引用语义与拷贝 |
默认参数用 [] 会串数据 | 4.2 函数:参数传递、默认值与作用域 |
| 写了类型注解却没有任何报错 | 9.1 类型注解语法与 pyright / mypy |
ModuleNotFoundError、找不到自己的模块 | 5.1 import 机制与模块搜索路径 |
pip install 装到别的环境去了 | 2.1、15.1 pyproject.toml 与依赖管理 |
改了代码却不生效(.pyc 缓存) | 10.2、附录 D |
| 不知道该不该引入某个第三方库 | 18.3 学习路径与生态选型 |
| 异常被悄悄吞掉了 | 7.1 异常层次与 try/except/else/finally |
如果你遇到的问题不在表里,可以先用目录里的关键词搜索定位章节,再结合每节的「本节目标」判断是否命中。
读完本书之后
读完全书并不意味着结束。语言是一门需要在项目里持续打磨的手艺,真正让知识固化的,是你把它用在自己的代码上。给几条后续建议:
- 找一个真实项目练手。哪怕是一个小工具、一个 CLI 脚本,把它完整地用类型注解与测试写一遍,收益远大于再读一遍书。
- 读一读你依赖的库的源码。标准库与流行库的实现本身就是优秀设计的范本,18.3 节教过你怎么用
inspect、pydoc与dis去读它们。 - 把标准库吃透再引入第三方库。第 10 到 13 章展示的就是「不装包也能干活」的边界;越过这条边界时,才是有理由引入依赖的时候。
- 保持对「过度设计」的警惕。语言能力越强,越容易写出没人看得懂的抽象。记住本书反复强调的那条原则:可维护优先于巧妙。
如果还想在某个单点上深挖,本站的 Python 专题文章是很好的补充——例如工具链看 Python 现代工具链 ,性能与内存看 Python 内存管理与性能调优 ,架构与代码组织看 Python 设计模式 ,更长线的学习路线看 Python 学习资源终极路线图 。它们与本书是互补关系:本书负责按顺序打基础,专题负责就一个问题钻到底。
小结
这一页的核心信息可以浓缩成三句话:
- 结构上,全书是「前置 3 篇 + 四部分 18 章 54 节 + 附录 4 篇」,共 61 篇,按学习曲线递进组织。
- 路径上,零基础按顺序读,有其他语言基础从第 5 章切入,急于能干活则集中读 8 节速成清单,已会用可当参考手册查。
- 方法上,每一节都遵循「本节目标 → 正文 → 小结 → 衔接 → 阅读导航」的五段式,任何一节都可以独立阅读。
如果你已经选好了路径,可以直接从对应的章节开始。每一节的末尾都会指向下一节,跟着走不会迷路。
祝你读得顺利。
最后再重复一句:本页不需要从头读到尾。它的作用是「在你需要的时候,三秒钟内把你送到正确的那一节」。把这一页加进书签,比记住任何章节编号都有用。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。