首页 / 知识库 / 0基础入门-阅读资料 / 0基础-python入门到精通

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 推荐阅读与学习资源


学习建议:每章配备代码练习,建议边学边敲。入门篇注重理解基本概念,进阶篇多做小项目巩固,面向对象篇要手写各种魔术方法加深理解,高级篇需要反复实验和阅读源码,精通篇则要在实际项目中持续打磨。