Python 学习大纲(详细版)
目录
- Python 简介与学习准备
- 基础语法与变量
- 核心数据类型
- 3.1 数字
- 3.2 字符串
- 3.3 列表
- 3.4 元组
- 3.5 字典
- 3.6 集合
- 3.7 推导式
- 控制流
- 函数
- 面向对象编程
- 错误与异常处理
- 模块与包
- 文件与输入输出
- 迭代器、生成器与装饰器
- 标准库精选
- 并发与异步编程
- 测试与调试
- 虚拟环境与包管理
- 类型提示与静态检查
- 常用第三方库概览
- 高级与进阶主题
- 项目实战与代码规范
- 推荐学习资源与路线
1. Python 简介与学习准备
- Python 历史、特点、设计哲学(
import this) - 应用领域:Web、数据科学、AI、自动化运维、爬虫等
- 环境安装与版本选择(Python 3.10+)
- 解释器:CPython、IPython、Jupyter
- IDE/编辑器:VS Code、PyCharm、Jupyter Lab
- 交互式编程与脚本执行
- 第一个程序:
print("Hello, World!")
2. 基础语法与变量
- 注释(
#单行,''' '''多行) - 变量命名规则(PEP8 推荐)
- 动态类型与赋值
- 标识符与关键字(
import keyword) - 基本输入输出:
print(),input() - 缩进与代码块
- 语句换行(
\)与多语句(;)
3. 核心数据类型
3.1 数字
- 整数
int、浮点数float、复数complex - 算术运算符(
+ - * / // % **) - 类型转换(
int(),float()) - 数学模块
math、随机数random - 进制表示:0b, 0o, 0x
3.2 字符串
- 创建:单引号、双引号、三引号
- 转义字符与原始字符串
r"" - 索引、切片
[start:stop:step] - 字符串方法:
split,join,strip,replace,find,upper/lower等 - 字符串格式化:
%、.format()、f-string - 编码与字节:
encode(),decode(),bytes,bytearray
3.3 列表
- 创建、索引、切片
- 方法:
append,extend,insert,remove,pop,sort,reverse - 列表遍历与
enumerate in成员检查- 列表的复制(浅拷贝与深拷贝
copy.deepcopy) - 列表表达式(推导式)
3.4 元组
- 不可变序列、单元素元组
(a,) - 打包与解包 (
a, b = b, a) - 命名元组
collections.namedtuple
3.5 字典
- 键值对,键必须可哈希
- 创建、访问、修改、删除
- 方法:
get,keys,values,items,update - 字典推导式
- 默认字典
collections.defaultdict - 有序字典
collections.OrderedDict(Python 3.7+ 字典已有序) - 计数器
collections.Counter
3.6 集合
- 可变集合
set与不可变集合frozenset - 去重、成员测试
- 集合运算:并、交、差、对称差
- 方法:
add,remove,discard,union,intersection - 集合推导式
3.7 推导式
- 列表推导式:
[x for x in iterable if cond] - 字典推导式:
{k: v for ...} - 集合推导式:
{x for x ...} - 生成器表达式:
(x for x ...)(惰性)
4. 控制流
- 条件语句:
if,elif,else - 真值测试(
None,0, 空序列为False) - 比较运算符、逻辑运算符
and,or,not - 循环:
while、for ... in break,continue,else子句(循环正常结束执行)range()函数zip()并行迭代enumerate()获取索引- 迭代器与可迭代对象基础
5. 函数
- 定义与调用
- 参数:位置参数、默认参数、关键字参数、可变参数
*args,**kwargs - 参数解包(
*和**) - 返回多值(元组)
- 作用域:局部变量、全局变量、
global、nonlocal - 递归函数
- 文档字符串
__doc__ - 函数注解(类型提示)
- 匿名函数
lambda - 高阶函数:
map,filter,reduce(functools.reduce) - 内置函数一览:
sorted,any,all,zip,enumerate,eval/exec(避免) - 闭包:内部函数捕获外部变量
- 装饰器:原理、
@语法、带参数装饰器、functools.wraps
6. 面向对象编程
- 类与对象:
class、__init__、实例方法 self的含义- 类变量与实例变量
- 访问控制(单下划线
_、双下划线__名字改编) - 方法:实例方法、类方法
@classmethod、静态方法@staticmethod - 属性:
@property、setter、deleter - 特殊方法(魔术方法):
__str__,__repr__,__len__,__add__,__eq__,__hash__,__call__等 - 继承:单继承、方法重写、
super() - 多继承与 MRO(方法解析顺序)
- 抽象基类
abc.ABC,@abstractmethod - 类装饰器、数据类
dataclasses.dataclass - 枚举
enum.Enum - 对象的属性管理:
__dict__,__slots__
7. 错误与异常处理
- 异常类层次结构(BaseException → Exception)
try/except/else/finally- 捕获多个异常、
as获取异常对象 - 抛出异常
raise - 自定义异常(继承
Exception) - 上下文管理器:
with语句、__enter__/__exit__ contextlib模块(contextmanager装饰器)
8. 模块与包
- 模块就是
.py文件 import与from ... import,别名as__name__与"__main__"的使用- 模块搜索路径
sys.path - 包:包含
__init__.py的目录 - 相对导入:
.,..(仅在包内使用) - 重新加载模块
importlib.reload __init__.py的作用
9. 文件与输入输出
- 文件打开模式
open():r,w,a,rb,wb,r+等 - 读取方法:
read(),readline(),readlines() - 写入:
write(),writelines() - 使用
with自动关闭 - 操作文件系统:
os,os.path,pathlib.Path - 序列化:
json(load/dump),pickle(load/dump) - CSV 处理:
csv模块,pandas - 字符串IO
io.StringIO/ 字节IOio.BytesIO
10. 迭代器、生成器与装饰器
- 可迭代协议
__iter__返回迭代器 - 迭代器协议
__next__抛出StopIteration - 生成器函数:
yield、yield from - 生成器的
send(),throw(),close()(协程基础) - 生成器表达式
itertools模块:chain,cycle,repeat,combinations,permutations,product等- 装饰器深入:基于类、装饰器栈、参数化装饰器
- 内置装饰器:
@staticmethod,@classmethod,@property,@functools.lru_cache
11. 标准库精选
- 系统与运行时:
sys,os,platform,argparse - 日期时间:
datetime,time,calendar - 数学:
math,decimal,fractions,statistics - 随机:
random - 数据结构:
collections(deque, Counter, OrderedDict, defaultdict, ChainMap),heapq,bisect - 函数工具:
functools(reduce, partial, lru_cache, wraps) - 迭代器:
itertools - 字符串正则:
re模块(match, search, findall, sub, compile) - 并发:
threading,multiprocessing,asyncio,concurrent.futures - 网络:
socketserver,http.client,urllib(推荐第三方 requests) - 电子邮件:
smtplib,email - 数据压缩:
zipfile,tarfile,gzip - 测试:
unittest,doctest - 调试:
logging,pdb - 国际化和编码:
locale,gettext,codecs
12. 并发与异步编程
- 进程、线程与 GIL 概念
threading:创建线程、start/join、锁Lock、RLock、条件变量、信号量- 线程安全队列
queue.Queue multiprocessing:进程创建、进程间通信Queue,Pipe, 共享内存concurrent.futures:ThreadPoolExecutor,ProcessPoolExecutor- 异步编程基础:
asyncio事件循环,async/await - 协程与任务
asyncio.create_task,asyncio.gather - 异步 IO 与异步上下文管理器
async with - 异步迭代
async for
13. 测试与调试
- 测试的重要性
unittest框架:TestCase,setUp/tearDown, 断言方法- 高级测试库:
pytest(推荐) doctest:文档字符串内测试- 代码覆盖率
coverage - 调试:
print、logging模块、pdb/breakpoint() - IDE 调试功能
14. 虚拟环境与包管理
- 为什么需要虚拟环境
venv创建和管理虚拟环境pip:安装、卸载、requirements.txt、pip freeze- 现代工具:
pipenv,poetry - 包构建与发布:
setuptools,wheel,twine pyproject.toml简介
15. 类型提示与静态检查
- 类型提示语法(Python 3.6+):变量、函数参数、返回值
typing模块:List,Dict,Tuple,Optional,Union,Any,Callable- 类型别名、NewType
- 泛型与
TypeVar - 数据类
dataclass字段类型 - 静态类型检查工具
mypy - 运行时类型检查
pydantic(常用)
16. 常用第三方库概览
- Web 开发:Flask、Django、FastAPI
- 数据分析:NumPy、pandas、matplotlib、seaborn
- 机器学习:scikit-learn、TensorFlow、PyTorch
- 爬虫:requests、BeautifulSoup、Scrapy
- 图像处理:Pillow、OpenCV
- 异步库:aiohttp、httpx
- GUI:Tkinter、PyQt、Kivy
- 游戏:Pygame
- 数据库:SQLAlchemy、pymongo、redis-py
- 部署/运维:ansible、fabric、docker-py
- 序列化:protobuf、msgpack
- 加密:cryptography、hashlib
17. 高级与进阶主题
- 元类
metaclass概念与使用场景 - 描述符
__get__,__set__,__delete__ - 内存管理与垃圾回收(引用计数、分代回收)
- 弱引用
weakref - C 扩展:
ctypes,Cython, 编写 C 扩展模块 - Python 字节码与
dis模块 - 性能分析:
cProfile,timeit - 代码优化:使用内建对象、局部变量、避免全局查找
- 多线程与多进程的深入对比
- 微服务与 RPC(gRPC、Thrift)
- Python 解释器内部(了解即可)
18. 项目实战与代码规范
- PEP 8 编码风格
- 代码格式化工具:
black,autopep8 - 代码检查:
flake8,pylint - Git 与版本控制基础
- 项目结构规范(如 cookiecutter 模板)
- 文档编写:Markdown、Sphinx
- 日志配置:
logging.conf - 配置文件管理:
configparser,.env - 实战项目方向:
- 命令行工具
- 个人博客(Flask/Django)
- 网络爬虫+数据展示
- API 服务(FastAPI)
- 数据处理与分析脚本
- 自动化脚本(文件管理、批处理)
- 游戏(Pygame 小游戏)
19. 推荐学习资源与路线
- 入门:官方文档、廖雪峰 Python 教程、Automate the Boring Stuff with Python
- 进阶:Fluent Python(流畅的 Python)、Effective Python
- 实战:Python Crash Course、网上开源项目
- 每日练习:LeetCode、Hackerrank、Codewars
- 社区:Stack Overflow、Reddit r/learnpython、GitHub
- 学习路径建议:
- 基础语法 + 数据结构(1-2周)
- 函数与 OOP(1-2周)
- 模块/文件/异常(1周)
- 高级特性(生成器、装饰器、迭代器)(1-2周)
- 标准库 + 常用第三方库实战(持续)
- 项目实践(持续)
本大纲覆盖了从零基础到高级 Python 开发者的完整路径,可依据个人目标和基础灵活调整学习顺序与深度。建议编程时多动手,多阅读官方文档,以项目驱动学习。