Skip to content

Latest commit

 

History

History
490 lines (369 loc) · 17.7 KB

File metadata and controls

490 lines (369 loc) · 17.7 KB

Python 学习大纲

本教程基于 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 项目实践           │                            │
└─────────────────┴───────────────────────┴───────────────────────────┘

第一阶段:基础篇(第 1-9 章)

第 1 章 - Python 简介与环境搭建

文件: 01-Python简介与环境搭建.md

知识点 说明
Python 是什么 语言特点、应用场景、版本选择
环境安装 uv 安装、Python 3.11+ 配置
第一个程序 print("Hello, World!")、运行方式
REPL 交互 交互式解释器的使用
代码规范 PEP 8 基础规范、注释写法

第 2 章 - 变量与数据类型

文件: 02-变量与数据类型.md

知识点 说明
变量赋值 命名规则、多重赋值、变量交换
整数 int 整数运算、进制表示(0b/0o/0x)
浮点数 float 精度问题、科学计数法
字符串 str 基础字符串操作(详见第 5 章)
布尔值 bool True/False、与其他类型的关系
空值 None None 的含义与使用场景
类型转换 int()/float()/str()/bool()
type() 与 isinstance() 类型检查的两种方式

第 3 章 - 基本运算符

文件: 03-基本运算符.md

知识点 说明
算术运算符 + - * / // % **
比较运算符 == != > < >= <=
逻辑运算符 and or not、短路求值
赋值运算符 = += -= *= 等复合赋值
位运算符 & `
成员运算符 in not in
身份运算符 is is not、与 == 的区别
运算符优先级 优先级顺序表

第 4 章 - 流程控制

文件: 04-流程控制.md

知识点 说明
if 语句 if / elif / else 结构
三元表达式 x if 条件 else y
match 语句 Python 3.10+ 模式匹配(结构匹配)
for 循环 遍历序列、range()、enumerate()
while 循环 条件循环、无限循环
break / continue 跳出与跳过
else 子句 循环的 else 分支
嵌套循环 多层循环与性能注意

第 5 章 - 字符串

文件: 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

第 6 章 - 列表

文件: 06-列表.md

知识点 说明
列表创建 [] 字面量、list() 构造
索引与切片 正向/反向索引、切片赋值
常用方法 append/extend/insert/remove/pop/clear
排序 sort()(原地)、sorted()(新列表)、key 参数
列表推导式 [x for x in ... if ...](详见第 22 章)
嵌套列表 二维列表的创建与遍历
浅拷贝与深拷贝 copy()copy.deepcopy()

第 7 章 - 元组

文件: 07-元组.md

知识点 说明
元组创建 () 字面量、单元素元组的逗号
不可变特性 元组不可修改的原因与用途
解包 多重赋值、* 扩展解包
具名元组 collections.namedtuple
元组与列表的对比 何时用元组,何时用列表

第 8 章 - 字典

文件: 08-字典.md

知识点 说明
字典创建 {} 字面量、dict() 构造
访问与修改 d[key]d.get(key, default)
常用方法 keys/values/items/update/pop/setdefault
遍历字典 遍历键、值、键值对
字典推导式 {k: v for k, v in ...}
嵌套字典 多层字典的访问与修改
有序性 Python 3.7+ 字典保持插入顺序

第 9 章 - 集合

文件: 09-集合.md

知识点 说明
集合创建 {1, 2, 3}set() 构造、空集合
集合运算 交集 &、并集 `
常用方法 add/remove/discard/pop/clear
frozenset 不可变集合
集合的典型应用 去重、成员检测(O(1) 查询)

第二阶段:进阶篇(第 10-19 章)

第 10 章 - 函数

文件: 10-函数.md

知识点 说明
函数定义 def、文档字符串、返回值
参数类型 位置参数、关键字参数、默认参数
可变参数 *args(位置)、**kwargs(关键字)
参数顺序 位置 → 默认 → *args → 仅关键字 → **kwargs
作用域 LEGB 规则、globalnonlocal
匿名函数 lambda 语法、使用场景(sorted/filter/map)
高阶函数 函数作为参数/返回值
递归 递归原理、终止条件、递归深度

第 11 章 - 模块与包

文件: 11-模块与包.md 完整内容: Python工具箱/11-模块与包.md

知识点 说明
import 语法 importfrom ... importas 别名
__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 章 - 文件操作

文件: 12-文件操作.md 完整内容: Python工具箱/12-文件操作.md

知识点 说明
open() 与 with 文件打开模式(r/w/a/x/b)、上下文管理器
读取方法 read()readline()readlines()、迭代读取
写入方法 write()writelines()、追加写入
文件指针 tell()seek()
pathlib Path 对象、路径拼接(/)、globrglob
目录操作 mkdir()iterdir()rmdir()
异常处理 FileNotFoundErrorPermissionError、编码错误

第 13 章 - 面向对象编程

文件: 13-面向对象编程.md

知识点 说明
类与对象 class 定义、实例化、self
__init__ 构造方法、实例属性初始化
实例方法 普通方法、@classmethod@staticmethod
封装 私有属性(_/__)、@property
继承 单继承、super()、方法重写
多态 鸭子类型、运算符重载(__str__/__repr__/__eq__
多重继承 MRO(方法解析顺序)、C3 算法
特殊方法 __len____contains____iter__

第 14 章 - 错误与异常

文件: 14-错误与异常.md

知识点 说明
异常类型 SyntaxErrorTypeErrorValueError
try-except 捕获异常、多个 except 子句
else 与 finally 无异常时执行(else)、总是执行(finally)
抛出异常 raise、重新抛出
自定义异常 继承 Exception、自定义错误信息
上下文管理器 with 语句、__enter__/__exit__

第 15 章 - 迭代器与生成器

文件: 15-迭代器与生成器.md

知识点 说明
可迭代对象 __iter__iter()
迭代器协议 __next__StopIteration
生成器函数 yield 关键字、惰性求值
生成器表达式 (x for x in ...)
itertools chainisliceproduct
实际应用 处理大文件、无限序列

第 16 章 - 装饰器与闭包

文件: 16-装饰器与闭包.md

知识点 说明
闭包 自由变量、nonlocal、闭包的使用场景
函数装饰器 @decorator 语法、保留原函数信息(@wraps
带参数的装饰器 三层嵌套结构
类装饰器 用类实现装饰器
内置装饰器 @staticmethod@classmethod@property
实际应用 计时、缓存(@functools.lru_cache)、权限验证

第 17 章 - 正则表达式

文件: 17-正则表达式.md 完整内容: Python工具箱/17-正则表达式.md

知识点 说明
元字符 . ^ $ * + ? {n,m} [] `
字符类 \d \D \w \W \s \S
量词 贪婪(* +)vs 非贪婪(*? +?
分组 () 捕获组、(?:) 非捕获组、(?P<name>) 命名组
re 模块函数 searchfindallsubsplitcompile
标志位 re.I(忽略大小写)、re.M(多行)、re.S(点匹配换行)
实际应用 验证邮箱/手机号、提取 URL、文本清洗

第 18 章 - 并发编程

文件: 18-并发编程.md

知识点 说明
并发 vs 并行 GIL 的影响、I/O 密集 vs CPU 密集
threading ThreadLockQueue、线程池
multiprocessing ProcessPool、进程间通信
async/await 协程基础、asyncio.run()await
asyncio 基础 create_taskgatheras_completed
选择建议 何时用线程、进程、协程

asyncio 深入: 第 23 章 - asyncio 高级编程


第 19 章 - 项目实践

文件: 19-实用项目.md(索引页) 完整内容: 19-项目实践/README.md

项目 涉及知识点
天气查询工具 HTTP 请求、JSON 解析、异常处理
文件批量重命名 pathlib、文件操作、字符串处理
待办事项管理器 JSON 持久化、CRUD、面向对象
网页爬虫 BeautifulSoup、HTML 解析、URL 处理
CSV 数据分析 CSV 读写、统计计算、报告生成

第三阶段:专题篇(第 20-23 章)

第 20 章 - uv 包管理器

文件: 20-uv包管理器.md

知识点 说明
uv 安装 一键安装脚本
虚拟环境 uv venv、激活与停用
依赖管理 uv adduv removeuv sync
Python 版本管理 uv python install、多版本切换
pyproject.toml 现代项目配置格式
与 pip 的对比 速度、功能、使用场景

第 21 章 - 类型提示

文件: 21-类型提示.md

知识点 说明
基础类型注解 intstrlistdicttuple
可选类型 Optional[X](Python 3.9 前)、`X
联合类型 Union[X, Y](旧)、`X
泛型 List[T]Dict[K, V](旧)vs list[T](新)
函数注解 参数类型、返回值类型
TypeVar 与协议 Protocol、结构子类型
mypy 静态类型检查工具

第 22 章 - 列表推导式

文件: 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

第 23 章 - asyncio 高级编程

文件: 23-asyncio高级编程.md

知识点 说明
事件循环 asyncio.get_event_loop()、事件循环的工作原理
Task 与 Future asyncio.create_task()await 一个 Future
asyncio.Queue 生产者-消费者模式
同步原语 LockEventSemaphore
超时控制 asyncio.wait_for()asyncio.timeout()
与同步代码结合 run_in_executor()、混用同步库

专题参考目录

Python 工具箱

目录: 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

进入第 1 章