主题
Python 学习计划
📋 学习目标
从 0 到 1 系统掌握 Python:会用(语法、数据结构、标准库)、懂原理(CPython 对象模型、GIL、引用计数、字节码、asyncio 事件循环)、能落地(CLI 工具、爬虫、Web 服务、数据分析)、面试稳过(覆盖大厂高频考点)。
本教程默认环境中已有可用的 Python 3.10+,不会花篇幅讲安装。聚焦点是「使用」与「底层逻辑」。
🎯 适合人群
- 零基础小白:从未写过 Python,对「解释器 / 字节码 / 虚拟环境」概念模糊。
- 进阶开发者:写过脚本,但对「装饰器 / 生成器 / GIL / 元类 / asyncio」一知半解。
- 面试备战者:需要系统覆盖 Python 高频面试题。
🗺 全局路线图
┌──────────────────────────┐
│ 第 1 章:Python 是什么 │
│ 解释器 & 字节码 │
└────────────┬─────────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
┌────────▼─────────┐ ┌────────▼─────────┐ ┌────────▼─────────┐
│ 基础语法篇 │ │ 面向对象 & 模块 │ │ 异常 & IO │
│ Ch 2 - Ch 3 │ │ Ch 4 - Ch 5 │ │ Ch 6 │
│ │ │ │ │ │
│ • 数据类型 │ │ • 类 / 继承 │ │ • try/except │
│ • 控制流 / 函数 │ │ • 魔术方法 │ │ • 上下文管理器 │
│ • 闭包 / 作用域 │ │ • 模块 / 包 │ │ • pathlib │
└───────────────────┘ └────────────────────┘ └────────────────────┘
│
┌────────────────────────┼────────────────────────┐
│ │ │
┌────────▼─────────┐ ┌────────▼─────────┐ ┌────────▼─────────┐
│ Python 三大利器 │ │ 并发 & 异步 │ │ 标准库 & 内存 │
│ Ch 7 │ │ Ch 8 - Ch 9 │ │ Ch 10 - Ch 11 │
│ │ │ │ │ │
│ • 迭代器 │ │ • 多线程 / GIL │ │ • collections │
│ • 生成器 │ │ • 多进程 │ │ • itertools │
│ • 装饰器 │ │ • asyncio │ │ • 引用计数 / GC │
└───────────────────┘ └────────────────────┘ └────────────────────┘
│
┌────────────────────────┼────────────────────────┐
│ │
┌────────▼─────────────────┐ ┌──────────────▼──────────────┐
│ 工程实战篇 │ │ 综合项目 │
│ Ch 12 - Ch 13 │ │ Ch 14 │
│ │ │ │
│ • 性能优化 / 调试 │ │ • CLI 待办 / 异步爬虫 / │
│ • requests / pandas / │ │ FastAPI 后端服务(三选一) │
│ FastAPI 入门 │ │ │
└────────────────────────────┘ └──────────────────────────────┘第一阶段:入门认知(第 1 周)
第 1 章 Python 是什么 & 为什么火
- [ ] 编程语言的三大流派:编译型 / 解释型 / 混合型
- [ ] Python 在工业界的定位(Web / 爬虫 / AI / 运维 / 数据分析)
- [ ] CPython / Jython / PyPy / MicroPython 都是什么关系?
- [ ] 一行
print('hello')的背后:源码 → 字节码 → PVM 执行 - [ ] 用
dis模块「反汇编」看字节码 - [ ] REPL(交互式解释器)与脚本模式的区别
- [ ] PEP / Python 之禅 / 缩进哲学
练习任务:
写一个
hello.py输出"Hello, Python!",用python -m dis hello.py看字节码,并截图说明每条指令的含义。
第二阶段:基础语法(第 2 周)
第 2 章 基础语法与数据类型
- [ ] 数字类型(
int任意精度、floatIEEE-754、complex、Decimal) - [ ] 字符串:不可变、
strvsbytes、f-string、切片技巧 - [ ] 列表
list:动态数组、append/pop复杂度、切片陷阱 - [ ] 元组
tuple:不可变 + 可哈希、命名元组 - [ ] 字典
dict:哈希表、3.7 后插入有序、底层结构 - [ ] 集合
set/frozenset:去重 / 交并差 - [ ] 可变 vs 不可变 / 浅拷贝 vs 深拷贝
- [ ]
isvs==的世纪难题
第 3 章 控制流与函数
- [ ]
if / elif / else、match模式匹配(3.10+) - [ ]
for/while/break/continue/else - [ ] 推导式:列表、字典、集合、生成器表达式
- [ ] 函数定义、
*args / **kwargs、关键字参数、参数默认值的「可变陷阱」 - [ ] 作用域(LEGB 规则)、
global/nonlocal - [ ] 闭包(Closure):函数 + 环境
- [ ]
lambda、map/filter/reduce
第三阶段:面向对象与模块(第 3-4 周)
第 4 章 面向对象编程
- [ ] 类与实例、
__init__与__new__ - [ ] 类属性 vs 实例属性、
__dict__与__slots__ - [ ] 继承、MRO(C3 线性化算法)、
super() - [ ] 魔术方法:
__str__/__repr__/__len__/__getitem__... - [ ]
@property/@classmethod/@staticmethod - [ ] 抽象基类
ABC/ 协议Protocol(duck typing 进化版) - [ ] 元类
type初探:类也是对象 - [ ] dataclass / namedtuple / TypedDict 选型
第 5 章 模块、包与依赖管理
- [ ]
import机制:sys.path/__init__.py/ 命名空间包 - [ ] 相对导入 vs 绝对导入
- [ ] 虚拟环境:
venv/virtualenv/conda - [ ] 包管理:
pip/requirements.txt/pyproject.toml - [ ] 现代工具链:
uv/poetry/pdm - [ ] 发布自己的包到 PyPI
第四阶段:异常 & IO(第 5 周)
第 6 章 异常处理与文件 IO
- [ ] 异常体系:
BaseException→Exception树 - [ ]
try / except / else / finally完整语义 - [ ] 自定义异常、异常链
raise from - [ ] 上下文管理器:
with语句、__enter__/__exit__、@contextmanager - [ ] 文件 IO:
open模式、编码、pathlib现代写法 - [ ] 标准输入输出、
sys.stdin / stdout / stderr
第五阶段:Python 三大利器(第 6 周)
第 7 章 迭代器、生成器、装饰器
- [ ] 迭代器协议:
__iter__/__next__/StopIteration - [ ] 可迭代对象 vs 迭代器
- [ ] 生成器函数:
yield单次返回、yield from委托 - [ ] 生成器 vs 列表:内存对比
- [ ] 装饰器原理:函数也是对象
- [ ] 带参装饰器、类装饰器、
functools.wraps - [ ] 实战:日志装饰器 / 缓存装饰器 / 性能计时装饰器
第六阶段:并发与异步(第 7-8 周)
第 8 章 并发:多线程 / 多进程 / GIL
- [ ] 进程 vs 线程 vs 协程:到底差在哪?
- [ ] GIL 是什么?为什么 Python 有 GIL?
- [ ]
threading:Lock/RLock/Semaphore/Event/Condition - [ ]
multiprocessing:Process/Pool/Queue/Pipe - [ ]
concurrent.futures:高层抽象ThreadPoolExecutor/ProcessPoolExecutor - [ ] CPU 密集 vs IO 密集:用谁不用谁
第 9 章 异步编程 asyncio
- [ ] 协程是什么?从生成器到 async/await 的演进
- [ ] 事件循环(Event Loop)的工作原理
- [ ]
async def/await/asyncio.run - [ ]
gather/wait/as_completed/Task/Future - [ ] 同步代码混入异步:
run_in_executor - [ ]
aiohttp实战:并发抓取 100 个 URL
第七阶段:标准库与内存(第 9 周)
第 10 章 标准库精华
- [ ]
datetime/time/zoneinfo - [ ]
collections:Counter/defaultdict/OrderedDict/deque/namedtuple - [ ]
itertools:chain/groupby/product/combinations - [ ]
functools:lru_cache/partial/reduce/singledispatch - [ ]
json/csv/re/logging - [ ]
os/pathlib/shutil/subprocess
第 11 章 内存模型与垃圾回收
- [ ] CPython 对象模型:
PyObject头、引用计数字段 - [ ] 引用计数:何时 +1 / -1 / 析构
- [ ] 循环引用为什么需要 GC?
- [ ] 分代 GC:3 代设计、阈值、何时触发
- [ ]
gc模块:调试 / 关闭 / 手动触发 - [ ]
__del__的坑、弱引用weakref - [ ] 小整数缓存、字符串驻留(intern)
第八阶段:工程实战(第 10-11 周)
第 12 章 性能优化与调试
- [ ] 性能分析三件套:
time/timeit/cProfile/line_profiler - [ ] 内存分析:
tracemalloc/memory_profiler - [ ] 调试器
pdb/ipdb、breakpoint()内置函数 - [ ] 常见性能坑:字符串拼接、循环 append、全局变量、过度封装
- [ ] 加速方案:
numba/cython/mypyc/C 扩展
第 13 章 常用第三方库
- [ ]
requests:HTTP 客户端事实标准 - [ ]
numpy:N 维数组、向量化计算(与原生 list 对比) - [ ]
pandas:DataFrame、Series、读写 CSV/Excel/SQL - [ ]
FastAPI入门:基于类型注解的 Web 框架 - [ ]
pydantic:数据校验 - [ ]
loguru:开箱即用的日志库
第九阶段:综合实战(第 12 周)
第 14 章 综合项目(三选一)
- [ ] 📋 CLI 待办应用:
argparse+ JSON 持久化 + 彩色输出 - [ ] 🕷 异步爬虫:
aiohttp+ 并发限速 + 断点续传 + 数据落库 - [ ] 🚀 FastAPI 后端服务:用户系统 + JWT 鉴权 + SQLAlchemy + Docker 部署
📁 目录结构约定
learnNote/backend/language/python/
├── 0_learn_plan.md ← 本文件(学习总纲)
├── task.md ← 教程产出规范
├── interview.md ← 面试题总索引
├── README.md ← 入口导航
│
├── 01_intro.md ← 第 1 章文档
├── 01_intro/ ← 第 1 章配套资源
│ ├── demo.html ← 浏览器可交互演示
│ ├── img/
│ │ ├── python-position.svg
│ │ ├── execution-flow.svg
│ │ └── ...
│ └── code/
│ └── hello_python.py ← 实战代码
│
├── 02_basic_types.md ← 第 2 章
├── 02_basic_types/
│ ├── demo.html
│ ├── img/
│ └── code/
│ └── ...
│
└── ... (其余章节同样结构)⏱ 时间建议
| 阶段 | 章节 | 建议时间 | 难度 |
|---|---|---|---|
| 第一阶段:入门认知 | Ch 1 | 2 天 | ⭐ |
| 第二阶段:基础语法 | Ch 2-3 | 1 周 | ⭐⭐ |
| 第三阶段:面向对象 | Ch 4-5 | 1.5 周 | ⭐⭐⭐ |
| 第四阶段:异常 & IO | Ch 6 | 4 天 | ⭐⭐ |
| 第五阶段:三大利器 | Ch 7 | 1 周 | ⭐⭐⭐⭐ |
| 第六阶段:并发 & 异步 | Ch 8-9 | 2 周 | ⭐⭐⭐⭐ |
| 第七阶段:标准库 & 内存 | Ch 10-11 | 1.5 周 | ⭐⭐⭐ |
| 第八阶段:工程实战 | Ch 12-13 | 1.5 周 | ⭐⭐⭐⭐ |
| 第九阶段:综合项目 | Ch 14 | 1 周 | ⭐⭐⭐⭐⭐ |
💡 建议:每天投入 1-2 小时;每章先看文档 → 跑实战代码 → 玩
demo.html→ 默写面试题。最后用第 14 章的项目把所有知识串起来。
📚 推荐资源
官方
- Python 官方文档(中文)
- Python 标准库索引
- PEP 索引 — 设计提案,理解语言演进
书籍
- 《流畅的 Python》— Luciano Ramalho(Python 进阶必读,覆盖几乎所有核心特性)
- 《Python Cookbook》— David Beazley
- 《Effective Python》— Brett Slatkin(90 条最佳实践)
- 《CPython Internals》— Anthony Shaw(想看源码的入门书)
在线资源
- Real Python — 高质量英文教程
- 廖雪峰 Python 教程
- Python 官方教程