Python 从入门到精通 — 教程大纲
本教程专注于 Python 语言本身,深入讲解语法特性与编程思想,不涉及第三方框架。
第一部分:入门篇 — 走进 Python 的世界
第 1 章 Python 概述与环境搭建
- 1.1 Python 的历史与设计哲学(
import this) - 1.2 Python 2 vs Python 3
- 1.3 安装 Python(Windows / macOS / Linux)
- 1.4 交互式解释器(REPL)与 IDLE
- 1.5 第一个 Python 程序:Hello, World!
- 1.6 代码风格与 PEP 8 规范
第 2 章 基本数据类型
- 2.1 数字类型:int、float、complex
- 2.2 任意精度整数与浮点数精度陷阱
- 2.3 布尔类型 bool 与真值判断
- 2.4 字符串 str —— 不可变的 Unicode 序列
- 2.4.1 字符串创建与转义字符
- 2.4.2 字符串格式化:%、format()、f-string
- 2.4.3 常用字符串方法
- 2.4.4 字符串切片与索引
- 2.5 bytes 与 bytearray
- 2.6 None 类型
第 3 章 变量、表达式与运算符
- 3.1 变量赋值与命名规则
- 3.2 动态类型与变量引用模型
- 3.3 算术运算符(含
//整除与**幂运算) - 3.4 比较运算符与链式比较(
1 < x < 10) - 3.5 逻辑运算符:and、or、not 及短路求值
- 3.6 位运算符
- 3.7 赋值运算符与海象运算符
:= - 3.8 运算符优先级
第 4 章 流程控制
- 4.1 条件语句:if / elif / else
- 4.2 match-case 结构化模式匹配(Python 3.10+)
- 4.3 for 循环与可迭代对象
- 4.4 while 循环
- 4.5 break、continue 与 else 子句
- 4.6 循环技巧:enumerate()、zip()、reversed()、sorted()
第 5 章 数据结构(内置容器)
- 5.1 列表 list
- 5.1.1 创建、索引与切片
- 5.1.2 增删改查常用方法
- 5.1.3 列表排序与 key 函数
- 5.1.4 列表的浅拷贝与深拷贝
- 5.2 元组 tuple
- 5.2.1 不可变性与用途
- 5.2.2 命名元组 namedtuple
- 5.3 字典 dict
- 5.3.1 字典创建与基本操作
- 5.3.2 字典推导式
- 5.3.3 defaultdict、OrderedDict、Counter
- 5.3.4 字典合并运算符
|(Python 3.9+)
- 5.4 集合 set 与 frozenset
- 5.4.1 集合运算:并集、交集、差集、对称差集
- 5.4.2 集合推导式
- 5.5 推导式总结:列表 / 字典 / 集合 / 生成器表达式
第二部分:进阶篇 — 掌握核心特性
第 6 章 函数
- 6.1 函数定义与调用
- 6.2 参数类型全解析
- 6.2.1 位置参数与关键字参数
- 6.2.2 默认参数(可变默认参数陷阱)
- 6.2.3 可变参数
*args与**kwargs - 6.2.4 仅限位置参数
/与仅限关键字参数*
- 6.3 返回值与多值返回
- 6.4 作用域与 LEGB 规则
- 6.5 闭包(Closure)
- 6.6 lambda 匿名函数
- 6.7 高阶函数:map()、filter()、reduce()
- 6.8 递归与尾递归优化
- 6.9 函数注解与类型提示(Type Hints)
第 7 章 装饰器
- 7.1 函数是一等公民
- 7.2 装饰器原理:从手动包装到
@语法糖 - 7.3 带参数的装饰器
- 7.4
functools.wraps保留元信息 - 7.5 类装饰器
- 7.6 多个装饰器的叠加顺序
- 7.7 常见实战场景:计时、缓存、权限检查、重试
第 8 章 迭代器与生成器
- 8.1 可迭代对象 vs 迭代器
- 8.2
__iter__()与__next__()协议 - 8.3 生成器函数与
yield - 8.4 生成器表达式
- 8.5
yield from委托生成器 - 8.6 生成器的
send()、throw()、close() - 8.7 itertools 模块精讲
第 9 章 文件与 I/O 操作
- 9.1 文件打开模式:r / w / a / b / +
- 9.2 上下文管理器与
with语句 - 9.3 文本文件读写与编码
- 9.4 二进制文件读写
- 9.5 pathlib 模块:面向对象的路径操作
- 9.6 序列化:json、pickle、shelve
- 9.7 StringIO 与 BytesIO
第 10 章 异常处理
- 10.1 异常体系结构(BaseException 继承树)
- 10.2 try / except / else / finally
- 10.3 捕获多个异常与异常链
- 10.4 自定义异常类
- 10.5 异常组与
except*(Python 3.11+) - 10.6 上下文管理器与异常抑制
- 10.7 LBYL vs EAFP 编程风格
- 10.8 warnings 模块
第三部分:面向对象篇 — 构建你的类型系统
第 11 章 面向对象编程基础
- 11.1 类与实例
- 11.2
__init__构造方法 - 11.3 实例属性与类属性
- 11.4 实例方法、类方法
@classmethod、静态方法@staticmethod - 11.5 属性访问控制:公有、保护、私有(名称改写)
- 11.6
@property描述符快捷方式
第 12 章 继承与多态
- 12.1 单继承与方法重写
- 12.2
super()的正确用法 - 12.3 多继承与 MRO(C3 线性化)
- 12.4 Mixin 设计模式
- 12.5 抽象基类 ABC 与
@abstractmethod - 12.6 鸭子类型与协议(Protocol)
第 13 章 魔术方法(双下方法)全景
- 13.1 对象表示:
__repr__、__str__、__format__ - 13.2 比较运算:
__eq__、__lt__、__hash__ - 13.3 算术运算:
__add__、__radd__、__iadd__ - 13.4 容器协议:
__len__、__getitem__、__setitem__、__contains__ - 13.5 可调用对象:
__call__ - 13.6 上下文管理:
__enter__、__exit__ - 13.7 属性访问:
__getattr__、__getattribute__、__setattr__、__delattr__ - 13.8
__slots__节省内存 - 13.9
__init_subclass__与__set_name__
第 14 章 描述符
- 14.1 描述符协议:
__get__、__set__、__delete__ - 14.2 数据描述符 vs 非数据描述符
- 14.3 描述符与 property、classmethod、staticmethod 的关系
- 14.4 用描述符实现 ORM 字段验证
第 15 章 元类
- 15.1 一切皆对象:类也是对象
- 15.2
type()动态创建类 - 15.3
__metaclass__与 metaclass 参数 - 15.4 元类的
__new__与__init__ - 15.5
__prepare__控制类命名空间 - 15.6 元类实战:单例模式、ORM 映射、接口检查
- 15.7 何时使用元类 vs
__init_subclass__vs 类装饰器
第 16 章 dataclasses 与现代类定义
- 16.1
@dataclass基本用法 - 16.2 field() 与默认工厂
- 16.3
__post_init__后处理 - 16.4 frozen 不可变数据类
- 16.5 继承与字段排序
- 16.6
__slots__与 dataclass 结合(Python 3.10+) - 16.7 与 NamedTuple 的对比与选择
第四部分:高级篇 — 深入语言内核
第 17 章 模块与包
- 17.1 模块的创建与导入
- 17.2
__name__与if __name__ == "__main__" - 17.3 包与
__init__.py - 17.4 相对导入与绝对导入
- 17.5
__all__与命名空间控制 - 17.6 模块搜索路径与 sys.path
- 17.7 importlib 与动态导入
- 17.8 命名空间包(PEP 420)
第 18 章 类型系统与类型提示
- 18.1 渐进式类型系统理念
- 18.2 基础类型注解:int、str、List、Dict、Optional、Union
- 18.3 TypeVar 与泛型 Generic
- 18.4 Protocol 结构化子类型
- 18.5 Literal、Final、TypedDict
- 18.6 ParamSpec 与 Concatenate(装饰器类型)
- 18.7 TypeGuard 与类型窄化
- 18.8
type语句与类型别名(Python 3.12+) - 18.9 使用 mypy / pyright 进行静态检查
第 19 章 并发编程
- 19.1 GIL 的本质与影响
- 19.2 多线程 threading
- 19.2.1 线程创建与管理
- 19.2.2 锁 Lock、RLock、Semaphore、Event、Condition
- 19.2.3 线程安全与竞态条件
- 19.3 多进程 multiprocessing
- 19.3.1 进程创建与进程池
- 19.3.2 进程间通信:Queue、Pipe、共享内存
- 19.4 concurrent.futures 统一接口
- 19.5 子解释器与 free-threaded Python(Python 3.13+)
第 20 章 异步编程
- 20.1 协程的演进:yield → yield from → async/await
- 20.2 事件循环与 asyncio
- 20.3 async def 与 await
- 20.4 asyncio.gather()、asyncio.create_task()
- 20.5 异步迭代器
__aiter__/__anext__ - 20.6 异步上下文管理器
__aenter__/__aexit__ - 20.7 异步生成器
- 20.8 asyncio 同步原语(Lock、Semaphore、Queue)
- 20.9 TaskGroup 与异常组
第 21 章 内存管理与性能优化
- 21.1 Python 对象模型与内存布局
- 21.2 引用计数与垃圾回收(分代 GC)
- 21.3 弱引用 weakref
- 21.4
__slots__与内存优化 - 21.5 sys.getsizeof() 与 tracemalloc
- 21.6 性能分析:cProfile、timeit、line_profiler
- 21.7 优化技巧:局部变量、缓存、生成器惰性求值
第 22 章 函数式编程
- 22.1 Python 中的函数式风格
- 22.2 纯函数与不可变数据
- 22.3 高阶函数深入
- 22.4 functools 模块精讲
- 22.4.1 partial 偏函数
- 22.4.2 lru_cache / cache 缓存
- 22.4.3 singledispatch 单分派泛函数
- 22.4.4 reduce 折叠操作
- 22.5 operator 模块
- 22.6 函数组合与管道模式
第 23 章 正则表达式
- 23.1 正则表达式语法速览
- 23.2 re 模块核心函数:match、search、findall、sub
- 23.3 编译正则与 flags
- 23.4 分组与命名分组
- 23.5 贪婪 vs 非贪婪匹配
- 23.6 零宽断言(前瞻与后顾)
- 23.7 常见实战模式:邮箱、URL、日期提取
第五部分:精通篇 — 工程化与最佳实践
第 24 章 Python 标准库精选
- 24.1 collections:deque、ChainMap、Counter、defaultdict
- 24.2 contextlib:上下文管理器工具集
- 24.3 enum:枚举类型
- 24.4 logging:日志系统
- 24.5 argparse:命令行参数解析
- 24.6 datetime:日期与时间处理
- 24.7 struct:处理 C 结构体二进制数据
- 24.8 abc:抽象基类
- 24.9 typing:类型提示扩展
- 24.10 dataclasses:数据类
第 25 章 测试
- 25.1 unittest 模块
- 25.2 doctest:文档即测试
- 25.3 pytest 测试实践(标准库外唯一推荐工具)
- 25.4 mock 与 patch
- 25.5 测试覆盖率与代码质量
第 26 章 调试与代码质量
- 26.1 pdb / breakpoint() 调试器
- 26.2 logging vs print 调试
- 26.3 assert 语句的正确使用
- 26.4 代码风格:PEP 8 / black / ruff
- 26.5 文档字符串:PEP 257 / Google Style / NumPy Style
- 26.6 类型检查与静态分析工具
第 27 章 包管理与项目工程化
- 27.1 虚拟环境:venv
- 27.2 pip 与依赖管理
- 27.3 pyproject.toml 与现代项目结构
- 27.4 构建与发布包到 PyPI
- 27.5 uv:新一代 Python 包管理器
第 28 章 Python 底层探秘
- 28.1 CPython 字节码与 dis 模块
- 28.2 PyObject 与类型对象
- 28.3 属性查找链:实例 → 类 → MRO → 描述符
- 28.4 import 系统的工作机制
- 28.5 Python 的编译过程:源码 → AST → 字节码
- 28.6 ast 模块与代码分析
第 29 章 C 扩展与互操作
- 29.1 ctypes 调用 C 动态库
- 29.2 C 扩展模块编写基础
- 29.3 Cython 加速 Python 代码
- 29.4 Python/C API 简介
第 30 章 Python 新特性速览(3.9 — 3.13)
- 30.1 Python 3.9:字典合并运算符、类型提示泛型
- 30.2 Python 3.10:match-case、更好的错误信息
- 30.3 Python 3.11:异常组、tomllib、速度提升
- 30.4 Python 3.12:type 语句、f-string 改进、改进的错误消息
- 30.5 Python 3.13:free-threaded 模式、改进的交互式解释器
附录
附录 A Python 内置函数速查表
附录 B 常用魔术方法速查表
附录 C Python 之禅(The Zen of Python)解读
附录 D 推荐阅读与学习资源
学习建议:每章配备代码练习,建议边学边敲。入门篇注重理解基本概念,进阶篇多做小项目巩固,面向对象篇要手写各种魔术方法加深理解,高级篇需要反复实验和阅读源码,精通篇则要在实际项目中持续打磨。