主题
从 0 到 1 学习 Python
一、项目目标
打造一套适合零基础小白入门、同时覆盖底层原理与面试高频考点的 Python 学习教程。要求内容由浅入深、图文并茂、能动手实操,最终达到「看完会用、用了懂原理、面试能答上」的效果。
二、读者画像
- 主要受众:从未写过一行 Python 代码、甚至不知道「解释器 / 字节码 / 虚拟环境」是什么的初学者。
- 次要受众:用过 Python 写脚本,但停留在
print('hello')层面,希望系统补齐「面向对象 / 装饰器 / 生成器 / 协程 / GIL」等底层原理的开发者。 - 风格要求:能用「冰箱存菜」「快递柜取件」「奶茶店流水线」这类生活化的比喻讲清楚 GIL、引用计数、装饰器、async/await、迭代器协议等晦涩概念。
三、环境约定
- 解释器:Python 3.10+(部分章节会指出 3.11/3.12 的新特性)。
- 包管理:默认使用
pip + venv,第 5 章会补充介绍uv/poetry。 - 运行方式:所有代码都能在终端
python xxx.py直接跑通,演示页面用浏览器打开demo.html即可。 - 聚焦点:
- Python 的正确使用姿势(语法、内置类型、标准库、典型场景)。
- Python 的底层实现逻辑(CPython 对象模型、引用计数、GIL、字节码、asyncio 事件循环等)。
四、章节内容物(每个章节都必须包含以下 4 部分)
每个章节按照统一结构产出,缺一不可:
学习文档(
.md)- 用「概念 → 生活类比 → 代码示例 → 底层原理 → 小结」五段式组织。
- 大量使用 ASCII 图 / SVG 图(svg-draw 生成) 展示对象模型、字节码、调用栈、内存布局,避免纯文字堆砌。
- 关键语法必须给出
pythonREPL 实操记录(输入 + 输出)。
实战案例(可运行代码)
- 至少 1 个贴近真实业务的场景,例如:CLI 计算器、文本词频统计、日志分析、并发下载、爬虫、FastAPI 接口等。
- 给出完整可运行的
.py文件,附带启动说明和依赖。
HTML 演示页面(
demo.html)- 单文件、零依赖(或仅引入 CDN),打开即可在浏览器中可视化演示该章节的核心概念。
- 例如:可视化引用计数变化、装饰器调用栈、生成器状态切换、asyncio 事件循环调度等。
- 页面要有交互(按钮、输入框、步进控制),让读者能「点一下看一步」。
面试题清单
- 收集大厂真实面经中该章节的高频题目(至少 5 题)。
- 每题给出:题目 → 考察点 → 标准答案(分点作答)→ 加分项 / 易错点。
五、内容深度与表达要求
- 从 0 到 1:第一次出现的术语必须解释,不能默认读者知道(比如第一次提到「字节码」要先讲
dis模块怎么看)。 - 生活化类比优先:晦涩点(GIL、装饰器、闭包、生成器、协程、元类等)必须先用生活例子打比方,再讲技术细节。
- 能动手:所有代码、命令、演示页面读者都能复制即用,不要出现伪代码或「此处省略」。
- 由浅入深:先讲「怎么用」,再讲「为什么这么设计」,最后引申「源码 / 性能 / 踩坑」。
- 配图丰富:每章至少配 2-4 张 SVG 图(通过
svg-draw生成),并辅以 ASCII 字符画。
六、章节大纲(14 章)
- Python 是什么 & 为什么火(解释型 vs 编译型、CPython、字节码、Hello World)
- 基础语法与数据类型(数字、字符串、列表、元组、字典、集合)
- 控制流与函数(if/for/while、函数、参数、lambda、闭包、作用域)
- 面向对象编程(类、继承、多态、魔术方法、
@property、元类初探) - 模块、包与依赖管理(import 机制、pip / venv / uv、
__init__.py) - 异常处理与文件 IO(try/except/else/finally、上下文管理器、
pathlib) - 迭代器、生成器、装饰器(三大利器,函数式编程基石)
- 并发:多线程 / 多进程 / GIL(Lock、Pool、为什么有 GIL)
- 异步编程 asyncio(事件循环、协程、async/await、aiohttp)
- 标准库精华(datetime、collections、itertools、functools、json、re、logging)
- 内存模型与垃圾回收(引用计数、循环引用、分代 GC、
gc模块) - 性能优化与调试(cProfile、line_profiler、PDB、常见性能坑)
- 常用第三方库(requests、numpy、pandas、FastAPI 入门)
- 综合实战项目(CLI 待办应用 / 异步爬虫 / FastAPI 后端服务)
七、产出格式约束
- 所有文档放在
learnNote/backend/language/python/下,按序号_主题.md命名(如01_intro.md)。 - 每章节配套的演示页面与代码放在同名子目录中,例如:
learnNote/backend/language/python/ ├── 01_intro.md ├── 01_intro/ │ ├── demo.html │ ├── img/ │ │ ├── python-position.svg │ │ └── execution-flow.svg │ └── code/ │ └── hello_python.py └── ... - 文档中的代码块必须标注语言(
```python、```bash等),方便高亮。 - 面试题统一汇总到每章末尾的「面试高频题」小节,并在
learnNote/backend/language/python/interview.md做总索引。 - SVG 图通过
svg-draw技能生成,保存到对应章节的img/目录,文档中用引用。