本教程基于 Python 3.11+ 编写,使用现代产业级工具链(uv, FastAPI, PyTorch等)。
本教程共 23 章,分三大阶段,另含两个专题子目录(Python工具箱、项目实践)。
┌─────────────────────────────────────────────────────────────────────┐
│ 三阶段学习路径 │
├─────────────────┬───────────────────────┬───────────────────────────┤
│ 基础篇 │ 进阶篇 │ 专题篇 │
│ 第 1-9 章 │ 第 10-19 章 │ 第 20-23 章 │
├─────────────────┼───────────────────────┼───────────────────────────┤
│ 01 简介与环境 │ 10 函数 │ 20 uv 包管理器 │
│ 02 变量与类型 │ 11 模块与包 │ 21 类型提示 │
│ 03 运算符 │ 12 文件操作 │ 22 列表推导式 │
│ 04 流程控制 │ 13 面向对象编程 │ 23 asyncio 高级编程 │
│ 05 字符串 │ 14 错误与异常 │ │
│ 06 列表 │ 15 迭代器与生成器 │ │
│ 07 元组 │ 16 装饰器与闭包 │ │
│ 08 字典 │ 17 正则表达式 │ │
│ 09 集合 │ 18 并发编程 │ │
│ │ 19 项目实践 │ │
└─────────────────┴───────────────────────┴───────────────────────────┘
| 知识点 | 说明 |
|---|---|
| Python 是什么 | 语言特点、应用场景、版本选择 |
| 环境安装 | uv 安装、Python 3.11+ 配置 |
| 第一个程序 | print("Hello, World!")、运行方式 |
| REPL 交互 | 交互式解释器的使用 |
| 代码规范 | PEP 8 基础规范、注释写法 |
文件: 02-变量与数据类型.md
| 知识点 | 说明 |
|---|---|
| 变量赋值 | 命名规则、多重赋值、变量交换 |
| 整数 int | 整数运算、进制表示(0b/0o/0x) |
| 浮点数 float | 精度问题、科学计数法 |
| 字符串 str | 基础字符串操作(详见第 5 章) |
| 布尔值 bool | True/False、与其他类型的关系 |
| 空值 None | None 的含义与使用场景 |
| 类型转换 | int()/float()/str()/bool() |
| type() 与 isinstance() | 类型检查的两种方式 |
文件: 03-基本运算符.md
| 知识点 | 说明 |
|---|---|
| 算术运算符 | + - * / // % ** |
| 比较运算符 | == != > < >= <= |
| 逻辑运算符 | and or not、短路求值 |
| 赋值运算符 | = += -= *= 等复合赋值 |
| 位运算符 | & ` |
| 成员运算符 | in not in |
| 身份运算符 | is is not、与 == 的区别 |
| 运算符优先级 | 优先级顺序表 |
文件: 04-流程控制.md
| 知识点 | 说明 |
|---|---|
| if 语句 | if / elif / else 结构 |
| 三元表达式 | x if 条件 else y |
| match 语句 | Python 3.10+ 模式匹配(结构匹配) |
| for 循环 | 遍历序列、range()、enumerate() |
| while 循环 | 条件循环、无限循环 |
| break / continue | 跳出与跳过 |
| else 子句 | 循环的 else 分支 |
| 嵌套循环 | 多层循环与性能注意 |
文件: 05-字符串.md
| 知识点 | 说明 |
|---|---|
| 字符串创建 | 单引号/双引号/三引号/原始字符串 |
| 索引与切片 | s[0]、s[1:5]、s[::-1] |
| 常用方法 | upper/lower/strip/split/join/replace/find |
| 字符串格式化 | f-string(推荐)、.format()、% 格式化 |
| 字符串判断 | startswith/endswith/isdigit/isalpha |
| 转义字符 | \n \t \\ \" |
| 字符串编码 | Unicode、UTF-8、encode/decode |
文件: 06-列表.md
| 知识点 | 说明 |
|---|---|
| 列表创建 | [] 字面量、list() 构造 |
| 索引与切片 | 正向/反向索引、切片赋值 |
| 常用方法 | append/extend/insert/remove/pop/clear |
| 排序 | sort()(原地)、sorted()(新列表)、key 参数 |
| 列表推导式 | [x for x in ... if ...](详见第 22 章) |
| 嵌套列表 | 二维列表的创建与遍历 |
| 浅拷贝与深拷贝 | copy() 与 copy.deepcopy() |
文件: 07-元组.md
| 知识点 | 说明 |
|---|---|
| 元组创建 | () 字面量、单元素元组的逗号 |
| 不可变特性 | 元组不可修改的原因与用途 |
| 解包 | 多重赋值、* 扩展解包 |
| 具名元组 | collections.namedtuple |
| 元组与列表的对比 | 何时用元组,何时用列表 |
文件: 08-字典.md
| 知识点 | 说明 |
|---|---|
| 字典创建 | {} 字面量、dict() 构造 |
| 访问与修改 | d[key]、d.get(key, default) |
| 常用方法 | keys/values/items/update/pop/setdefault |
| 遍历字典 | 遍历键、值、键值对 |
| 字典推导式 | {k: v for k, v in ...} |
| 嵌套字典 | 多层字典的访问与修改 |
| 有序性 | Python 3.7+ 字典保持插入顺序 |
文件: 09-集合.md
| 知识点 | 说明 |
|---|---|
| 集合创建 | {1, 2, 3}、set() 构造、空集合 |
| 集合运算 | 交集 &、并集 ` |
| 常用方法 | add/remove/discard/pop/clear |
| frozenset | 不可变集合 |
| 集合的典型应用 | 去重、成员检测(O(1) 查询) |
文件: 10-函数.md
| 知识点 | 说明 |
|---|---|
| 函数定义 | def、文档字符串、返回值 |
| 参数类型 | 位置参数、关键字参数、默认参数 |
| 可变参数 | *args(位置)、**kwargs(关键字) |
| 参数顺序 | 位置 → 默认 → *args → 仅关键字 → **kwargs |
| 作用域 | LEGB 规则、global、nonlocal |
| 匿名函数 | lambda 语法、使用场景(sorted/filter/map) |
| 高阶函数 | 函数作为参数/返回值 |
| 递归 | 递归原理、终止条件、递归深度 |
文件: 11-模块与包.md 完整内容: Python工具箱/11-模块与包.md
| 知识点 | 说明 |
|---|---|
| import 语法 | import、from ... import、as 别名 |
__name__ |
直接运行 vs 被导入时的区别 |
| 自定义模块 | 创建 .py 模块文件并导入 |
| 包结构 | __init__.py、子包、相对导入 |
| pip | 安装/卸载/更新/导出 requirements.txt |
| 常用标准库 | math / random / datetime / os / json(各有独立文档) |
标准库独立参考文档(Python工具箱/标准库/): math.md | random.md | datetime.md | os-pathlib.md | json.md
文件: 12-文件操作.md 完整内容: Python工具箱/12-文件操作.md
| 知识点 | 说明 |
|---|---|
| open() 与 with | 文件打开模式(r/w/a/x/b)、上下文管理器 |
| 读取方法 | read()、readline()、readlines()、迭代读取 |
| 写入方法 | write()、writelines()、追加写入 |
| 文件指针 | tell()、seek() |
| pathlib | Path 对象、路径拼接(/)、glob、rglob |
| 目录操作 | mkdir()、iterdir()、rmdir() |
| 异常处理 | FileNotFoundError、PermissionError、编码错误 |
文件: 13-面向对象编程.md
| 知识点 | 说明 |
|---|---|
| 类与对象 | class 定义、实例化、self |
__init__ |
构造方法、实例属性初始化 |
| 实例方法 | 普通方法、@classmethod、@staticmethod |
| 封装 | 私有属性(_/__)、@property |
| 继承 | 单继承、super()、方法重写 |
| 多态 | 鸭子类型、运算符重载(__str__/__repr__/__eq__) |
| 多重继承 | MRO(方法解析顺序)、C3 算法 |
| 特殊方法 | __len__、__contains__、__iter__ 等 |
文件: 14-错误与异常.md
| 知识点 | 说明 |
|---|---|
| 异常类型 | SyntaxError、TypeError、ValueError 等 |
| try-except | 捕获异常、多个 except 子句 |
| else 与 finally | 无异常时执行(else)、总是执行(finally) |
| 抛出异常 | raise、重新抛出 |
| 自定义异常 | 继承 Exception、自定义错误信息 |
| 上下文管理器 | with 语句、__enter__/__exit__ |
文件: 15-迭代器与生成器.md
| 知识点 | 说明 |
|---|---|
| 可迭代对象 | __iter__、iter() |
| 迭代器协议 | __next__、StopIteration |
| 生成器函数 | yield 关键字、惰性求值 |
| 生成器表达式 | (x for x in ...) |
itertools |
chain、islice、product 等 |
| 实际应用 | 处理大文件、无限序列 |
文件: 16-装饰器与闭包.md
| 知识点 | 说明 |
|---|---|
| 闭包 | 自由变量、nonlocal、闭包的使用场景 |
| 函数装饰器 | @decorator 语法、保留原函数信息(@wraps) |
| 带参数的装饰器 | 三层嵌套结构 |
| 类装饰器 | 用类实现装饰器 |
| 内置装饰器 | @staticmethod、@classmethod、@property |
| 实际应用 | 计时、缓存(@functools.lru_cache)、权限验证 |
文件: 17-正则表达式.md 完整内容: Python工具箱/17-正则表达式.md
| 知识点 | 说明 |
|---|---|
| 元字符 | . ^ $ * + ? {n,m} [] ` |
| 字符类 | \d \D \w \W \s \S |
| 量词 | 贪婪(* +)vs 非贪婪(*? +?) |
| 分组 | () 捕获组、(?:) 非捕获组、(?P<name>) 命名组 |
| re 模块函数 | search、findall、sub、split、compile |
| 标志位 | re.I(忽略大小写)、re.M(多行)、re.S(点匹配换行) |
| 实际应用 | 验证邮箱/手机号、提取 URL、文本清洗 |
文件: 18-并发编程.md
| 知识点 | 说明 |
|---|---|
| 并发 vs 并行 | GIL 的影响、I/O 密集 vs CPU 密集 |
| threading | Thread、Lock、Queue、线程池 |
| multiprocessing | Process、Pool、进程间通信 |
| async/await | 协程基础、asyncio.run()、await |
asyncio 基础 |
create_task、gather、as_completed |
| 选择建议 | 何时用线程、进程、协程 |
asyncio 深入: 第 23 章 - asyncio 高级编程
文件: 19-实用项目.md(索引页) 完整内容: 19-项目实践/README.md
| 项目 | 涉及知识点 |
|---|---|
| 天气查询工具 | HTTP 请求、JSON 解析、异常处理 |
| 文件批量重命名 | pathlib、文件操作、字符串处理 |
| 待办事项管理器 | JSON 持久化、CRUD、面向对象 |
| 网页爬虫 | BeautifulSoup、HTML 解析、URL 处理 |
| CSV 数据分析 | CSV 读写、统计计算、报告生成 |
文件: 20-uv包管理器.md
| 知识点 | 说明 |
|---|---|
| uv 安装 | 一键安装脚本 |
| 虚拟环境 | uv venv、激活与停用 |
| 依赖管理 | uv add、uv remove、uv sync |
| Python 版本管理 | uv python install、多版本切换 |
pyproject.toml |
现代项目配置格式 |
| 与 pip 的对比 | 速度、功能、使用场景 |
文件: 21-类型提示.md
| 知识点 | 说明 |
|---|---|
| 基础类型注解 | int、str、list、dict、tuple |
| 可选类型 | Optional[X](Python 3.9 前)、`X |
| 联合类型 | Union[X, Y](旧)、`X |
| 泛型 | List[T]、Dict[K, V](旧)vs list[T](新) |
| 函数注解 | 参数类型、返回值类型 |
TypeVar 与协议 |
Protocol、结构子类型 |
| mypy | 静态类型检查工具 |
文件: 22-列表推导式.md
| 知识点 | 说明 |
|---|---|
| 列表推导式 | [expr for x in iter if cond] |
| 字典推导式 | {k: v for k, v in ...} |
| 集合推导式 | {expr for x in iter} |
| 生成器表达式 | (expr for x in iter) |
| 嵌套推导式 | 多层 for 的展开 |
| 性能对比 | 推导式 vs 循环 vs map/filter |
| 知识点 | 说明 |
|---|---|
| 事件循环 | asyncio.get_event_loop()、事件循环的工作原理 |
| Task 与 Future | asyncio.create_task()、await 一个 Future |
asyncio.Queue |
生产者-消费者模式 |
| 同步原语 | Lock、Event、Semaphore |
| 超时控制 | asyncio.wait_for()、asyncio.timeout() |
| 与同步代码结合 | run_in_executor()、混用同步库 |
目录: Python工具箱/
整合第 11、12、17 章完整内容,并将第 11 章的标准库拆分为独立参考文档。
Python工具箱/
├── 11-模块与包.md
├── 12-文件操作.md
├── 17-正则表达式.md
└── 标准库/
├── math.md
├── random.md
├── datetime.md
├── os-pathlib.md
└── json.md
目录: 19-项目实践/
5 个从零到完整的真实项目,综合运用前 18 章知识。
┌─────────────────────────────────────────┐
│ 学习方法四原则 │
├─────────────────────────────────────────┤
│ │
│ 1. 循序渐进 │
│ 按章节顺序学习,不要跳章 │
│ 基础篇是进阶篇的前提 │
│ │
│ 2. 动手实践 │
│ 每章代码示例务必亲手运行 │
│ 修改参数,观察输出变化 │
│ │
│ 3. 完成练习 │
│ 每章末尾有练习题,先自己做 │
│ 做不出来再看答案 │
│ │
│ 4. 遇到问题先查本教程 │
│ 本教程包含大量常见错误说明 │
│ 每章"常见错误"部分重点阅读 │
│ │
└─────────────────────────────────────────┘
| 工具 | 版本 | 说明 |
|---|---|---|
| Python | 3.11+ | 必须 - 使用 match 语句、现代类型提示等特性 |
| uv | 最新版 | 推荐 - 包管理器(速度比 pip 快10-100倍) |
| 编辑器 | VS Code | 安装 Python 插件、Ruff 插件 |
重要: 本教程使用 Python 3.11+ 语法,不再支持 Python 3.10 及以下版本。如果你使用的是旧版本 Python,请先升级。
安装 uv(macOS/Linux):
curl -LsSf https://astral.sh/uv/install.sh | sh安装 Python 并创建项目:
uv python install 3.11
uv init my-python-project
cd my-python-project
uv add requests # 添加依赖
uv run python main.py