Python 学习大纲(详细版)

目录

  1. Python 简介与学习准备
  2. 基础语法与变量
  3. 核心数据类型
    • 3.1 数字
    • 3.2 字符串
    • 3.3 列表
    • 3.4 元组
    • 3.5 字典
    • 3.6 集合
    • 3.7 推导式
  4. 控制流
  5. 函数
  6. 面向对象编程
  7. 错误与异常处理
  8. 模块与包
  9. 文件与输入输出
  10. 迭代器、生成器与装饰器
  11. 标准库精选
  12. 并发与异步编程
  13. 测试与调试
  14. 虚拟环境与包管理
  15. 类型提示与静态检查
  16. 常用第三方库概览
  17. 高级与进阶主题
  18. 项目实战与代码规范
  19. 推荐学习资源与路线

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
  • 循环:whilefor ... in
  • break, continue, else 子句(循环正常结束执行)
  • range() 函数
  • zip() 并行迭代
  • enumerate() 获取索引
  • 迭代器与可迭代对象基础

5. 函数

  • 定义与调用
  • 参数:位置参数、默认参数、关键字参数、可变参数 *args, **kwargs
  • 参数解包(***
  • 返回多值(元组)
  • 作用域:局部变量、全局变量、globalnonlocal
  • 递归函数
  • 文档字符串 __doc__
  • 函数注解(类型提示)
  • 匿名函数 lambda
  • 高阶函数:map, filter, reducefunctools.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 文件
  • importfrom ... 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 / 字节IO io.BytesIO

10. 迭代器、生成器与装饰器

  • 可迭代协议 __iter__ 返回迭代器
  • 迭代器协议 __next__ 抛出 StopIteration
  • 生成器函数:yieldyield 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、锁 LockRLock、条件变量、信号量
  • 线程安全队列 queue.Queue
  • multiprocessing:进程创建、进程间通信 Queue, Pipe, 共享内存
  • concurrent.futuresThreadPoolExecutor, ProcessPoolExecutor
  • 异步编程基础:asyncio 事件循环,async/await
  • 协程与任务 asyncio.create_task, asyncio.gather
  • 异步 IO 与异步上下文管理器 async with
  • 异步迭代 async for

13. 测试与调试

  • 测试的重要性
  • unittest 框架:TestCase, setUp/tearDown, 断言方法
  • 高级测试库:pytest(推荐)
  • doctest:文档字符串内测试
  • 代码覆盖率 coverage
  • 调试:printlogging 模块、pdb / breakpoint()
  • IDE 调试功能

14. 虚拟环境与包管理

  • 为什么需要虚拟环境
  • venv 创建和管理虚拟环境
  • pip:安装、卸载、requirements.txtpip 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. 基础语法 + 数据结构(1-2周)
    2. 函数与 OOP(1-2周)
    3. 模块/文件/异常(1周)
    4. 高级特性(生成器、装饰器、迭代器)(1-2周)
    5. 标准库 + 常用第三方库实战(持续)
    6. 项目实践(持续)

本大纲覆盖了从零基础到高级 Python 开发者的完整路径,可依据个人目标和基础灵活调整学习顺序与深度。建议编程时多动手,多阅读官方文档,以项目驱动学习。

更多推荐