Skip to content

从 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 即可。
  • 聚焦点
    1. Python 的正确使用姿势(语法、内置类型、标准库、典型场景)。
    2. Python 的底层实现逻辑(CPython 对象模型、引用计数、GIL、字节码、asyncio 事件循环等)。

四、章节内容物(每个章节都必须包含以下 4 部分)

每个章节按照统一结构产出,缺一不可:

  1. 学习文档(.md

    • 用「概念 → 生活类比 → 代码示例 → 底层原理 → 小结」五段式组织。
    • 大量使用 ASCII 图 / SVG 图(svg-draw 生成) 展示对象模型、字节码、调用栈、内存布局,避免纯文字堆砌。
    • 关键语法必须给出 python REPL 实操记录(输入 + 输出)。
  2. 实战案例(可运行代码)

    • 至少 1 个贴近真实业务的场景,例如:CLI 计算器、文本词频统计、日志分析、并发下载、爬虫、FastAPI 接口等。
    • 给出完整可运行的 .py 文件,附带启动说明和依赖。
  3. HTML 演示页面(demo.html

    • 单文件、零依赖(或仅引入 CDN),打开即可在浏览器中可视化演示该章节的核心概念。
    • 例如:可视化引用计数变化、装饰器调用栈、生成器状态切换、asyncio 事件循环调度等。
    • 页面要有交互(按钮、输入框、步进控制),让读者能「点一下看一步」。
  4. 面试题清单

    • 收集大厂真实面经中该章节的高频题目(至少 5 题)。
    • 每题给出:题目 → 考察点 → 标准答案(分点作答)→ 加分项 / 易错点。

五、内容深度与表达要求

  • 从 0 到 1:第一次出现的术语必须解释,不能默认读者知道(比如第一次提到「字节码」要先讲 dis 模块怎么看)。
  • 生活化类比优先:晦涩点(GIL、装饰器、闭包、生成器、协程、元类等)必须先用生活例子打比方,再讲技术细节。
  • 能动手:所有代码、命令、演示页面读者都能复制即用,不要出现伪代码或「此处省略」。
  • 由浅入深:先讲「怎么用」,再讲「为什么这么设计」,最后引申「源码 / 性能 / 踩坑」。
  • 配图丰富:每章至少配 2-4 张 SVG 图(通过 svg-draw 生成),并辅以 ASCII 字符画。

六、章节大纲(14 章)

  1. Python 是什么 & 为什么火(解释型 vs 编译型、CPython、字节码、Hello World)
  2. 基础语法与数据类型(数字、字符串、列表、元组、字典、集合)
  3. 控制流与函数(if/for/while、函数、参数、lambda、闭包、作用域)
  4. 面向对象编程(类、继承、多态、魔术方法、@property、元类初探)
  5. 模块、包与依赖管理(import 机制、pip / venv / uv、__init__.py
  6. 异常处理与文件 IO(try/except/else/finally、上下文管理器、pathlib
  7. 迭代器、生成器、装饰器(三大利器,函数式编程基石)
  8. 并发:多线程 / 多进程 / GIL(Lock、Pool、为什么有 GIL)
  9. 异步编程 asyncio(事件循环、协程、async/await、aiohttp)
  10. 标准库精华(datetime、collections、itertools、functools、json、re、logging)
  11. 内存模型与垃圾回收(引用计数、循环引用、分代 GC、gc 模块)
  12. 性能优化与调试(cProfile、line_profiler、PDB、常见性能坑)
  13. 常用第三方库(requests、numpy、pandas、FastAPI 入门)
  14. 综合实战项目(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/ 目录,文档中用 ![](./章节目录/img/xxx.svg) 引用。