Skip to content

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 任意精度、float IEEE-754、complexDecimal
  • [ ] 字符串:不可变、str vs bytes、f-string、切片技巧
  • [ ] 列表 list:动态数组、append/pop 复杂度、切片陷阱
  • [ ] 元组 tuple:不可变 + 可哈希、命名元组
  • [ ] 字典 dict:哈希表、3.7 后插入有序、底层结构
  • [ ] 集合 set / frozenset:去重 / 交并差
  • [ ] 可变 vs 不可变 / 浅拷贝 vs 深拷贝
  • [ ] is vs == 的世纪难题

第 3 章 控制流与函数

  • [ ] if / elif / elsematch 模式匹配(3.10+)
  • [ ] for / while / break / continue / else
  • [ ] 推导式:列表、字典、集合、生成器表达式
  • [ ] 函数定义、*args / **kwargs、关键字参数、参数默认值的「可变陷阱」
  • [ ] 作用域(LEGB 规则)、global / nonlocal
  • [ ] 闭包(Closure):函数 + 环境
  • [ ] lambdamap / 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

  • [ ] 异常体系:BaseExceptionException
  • [ ] 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?
  • [ ] threadingLock / RLock / Semaphore / Event / Condition
  • [ ] multiprocessingProcess / 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
  • [ ] collectionsCounter / defaultdict / OrderedDict / deque / namedtuple
  • [ ] itertoolschain / groupby / product / combinations
  • [ ] functoolslru_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 / ipdbbreakpoint() 内置函数
  • [ ] 常见性能坑:字符串拼接、循环 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 12 天
第二阶段:基础语法Ch 2-31 周⭐⭐
第三阶段:面向对象Ch 4-51.5 周⭐⭐⭐
第四阶段:异常 & IOCh 64 天⭐⭐
第五阶段:三大利器Ch 71 周⭐⭐⭐⭐
第六阶段:并发 & 异步Ch 8-92 周⭐⭐⭐⭐
第七阶段:标准库 & 内存Ch 10-111.5 周⭐⭐⭐
第八阶段:工程实战Ch 12-131.5 周⭐⭐⭐⭐
第九阶段:综合项目Ch 141 周⭐⭐⭐⭐⭐

💡 建议:每天投入 1-2 小时;每章先看文档 → 跑实战代码 → 玩 demo.html → 默写面试题。最后用第 14 章的项目把所有知识串起来。


📚 推荐资源

官方

书籍

  • 《流畅的 Python》— Luciano Ramalho(Python 进阶必读,覆盖几乎所有核心特性
  • 《Python Cookbook》— David Beazley
  • 《Effective Python》— Brett Slatkin(90 条最佳实践)
  • 《CPython Internals》— Anthony Shaw(想看源码的入门书)

在线资源

进阶