- 版本修订记录
- 1. 简介
- 2. 环境搭建
❱
- 2.1. 安装包安装
- 2.2. 使用软件管理器安装
- 2.3. 使用 Anaconda 发行版
- 3. 基础的基础
❱
- 3.1. 变量命名
- 3.2. PEP
- 3.3. 解释器
- 3.4. 项目文件组织形式
- 3.5. 功能库
- 3.6. Pythonic
- 3.7. PEP8:Python 编码规范
- 4. 语言基础
❱
- 4.1. 运算符
- 4.2. 基础数据类型
- 4.3. 布尔型
- 4.4. 数字
- 4.5. 字符串
- 4.6. 列表
- 4.7. 元组
- 4.8. 字典
- 4.9. 集合
- 4.10. 命名元组
- 4.11. 条件控制
- 4.12. 循环
- 4.13. 空语句
- 4.14. 海象表达式
- 4.15. 迭代
- 4.16. 异常处理
- 4.17. 函数
- 5. 面向对象
❱
- 5.1. 类定义
- 5.2. 类对象
- 5.3. 方法定义
- 5.4. 构造函数
- 5.5. 属性的使用
- 5.6. 魔术方法
- 5.7. 继承与组合
- 5.8. 鸭子类型
- 5.9. 对于数据结构的选择
- 5.10. 自定义异常
- 5.11. 使用__slots__
- 5.12. 使用__dict__存取任意数据
- 5.13. 枚举类
- 5.14. 数据类
- 5.15. 迭代器与生成器
- 5.16. 用类编写修饰器
- 6. 类型标注
❱
- 6.1. 类型定义
- 6.2. 泛型
- 6.3. 类型标注的使用
- 6.4. 前向引用
- 6.5. 工厂方法
- 6.6. 类型转换
- 6.7. 自由参数和默认值
- 6.8. 类型谓词函数
- 7. 元编程
❱
- 7.1. 类修饰器
- 7.2. 元类
- 8. 常见设计模式的实现
❱
- 8.1. 工厂方法
- 8.2. 构造者
- 8.3. 适配器
- 8.4. 代理
- 8.5. 观察者
- 8.6. 组合
- 8.7. 单例
- 8.8. 原型
- 8.9. 状态
- 8.10. 中介
- 8.11. 责任链
- 8.12. 装饰
- 8.13. 享元
- 9. 库的使用
❱
- 9.1. 功能库的安装
- 9.2. 库功能的查询
- 9.3. 标准库功能概表
- 9.4. 常用库列表
- 10. 并行计算
❱
- 10.1. 多进程
- 10.2. 多线程
- 10.3. 数据同步
- 10.4. 分布式进程
- 10.5. 协程
- 11. IO 编程
❱
- 11.1. 开域资源管理
- 11.2. 文件读写
- 11.3. StringIO
- 11.4. BytesIO
- 11.5. 文件和目录
- 11.6. 序列化
- 11.7. 异步 IO
- 11.8. async/await 模型
- 12. 基本数据库访问
- 13. 虚拟环境的使用
- 14. 使用pipenv进行集成化虚拟环境的管理
❱
- 14.1. 安装
- 14.2. 基本概念
- 14.3. 使用方法
- 14.4. 常用子命令
- 14.5. 常用选项
- 14.6. 更换 pipenv 的源
- 15. 依赖管理的新工具:uv
❱
- 15.1. 安装
- 15.2. Python 环境管理
- 15.3. 项目管理
- 15.4. 依赖管理
- 15.5. 兼容 pip 的用法
- 15.6. 配置文件
- 16. 常用内建模块的使用
❱
- 16.1. 日期处理
- 16.2. 集合
- 16.3. Base64 编码
- 16.4. 字节数据打包
- 16.5. 散列算法
- 16.6. 辅助迭代操作
- 16.7. URL
- 16.8. 调用动态链接库
- 17. 老牌 ORM:SQLAlchemy
❱
- 17.1. 连接数据库
- 17.2. 表映射定义
- 17.3. 数据查询
- 17.4. 数据修改
- 17.5. 执行原生 SQL 语句
- 17.6. 调用存储过程
- 18. 操作 Redis
❱
- 18.1. 连接数据库
- 18.2. 操作数据的键
- 18.3. 字符串及整型数据操作
- 18.4. 列表类型数据操作
- 18.5. 集合类型数据操作
- 18.6. 键值表数据操作
- 19. 科学计算:NumPy 和 SciPy
❱
- 19.1. 数据类型
- 19.2. Ndarray
- 19.3. 广播
- 19.4. 数组操作
- 19.5. 线型代数
- 19.6. SciPy 各子包功能
- 19.7. 积分
- 20. 数据分析:Pandas
❱
- 20.1. 核心数据结构
- 20.2. 基本数据结构方法
- 20.3. 统计方法
- 20.4. 数据控制方法
- 20.5. 与 SQL 语法的对比
- 21. 可视化图表:Matplotlib
❱
- 21.1. 图例和标题
- 21.2. 条形图
- 21.3. 直方图
- 21.4. 散点图
- 21.5. 堆叠图
- 21.6. 饼图
- 21.7. 样式
- 21.8. 子图
- 21.9. 实时图表
- 21.10. 添加文本
- 22. 内置 GUI 模块:Tkinter 框架
❱
- 22.1. 最小应用
- 22.2. 基础概念
- 22.3. 网格布局
- 22.4. 组件内容的承载
- 22.5. 常用组件
- 22.6. 使用菜单
- 22.7. 对话框
- 22.8. 文件选择对话框
- 23. SDL 游戏库:pygame
❱
- 23.1. 模块列表
- 23.2. 最小应用
- 23.3. 一些基础概念
- 23.4. 创建基本窗口
- 23.5. 加载图片
- 23.6. 使用字体
- 23.7. 渲染画面
- 23.8. 读取事件
- 23.9. 控制帧速
- 24. OpenGL 游戏库:pyglet
❱
- 24.1. 最小应用
- 24.2. OpenGL 上下文
- 24.3. Display 和 Screen
- 24.4. Window
- 24.5. 用户输入事件
- 24.6. 时间控制
- 24.7. 基础绘画
- 24.8. 显示文字
- 24.9. 显示图片
- 24.10. 播放声音
- 24.11. 应用资源
- 25. 终端 GUI:Curses
❱
- 25.1. 支持 Windows 系统
- 25.2. Curses 环境的启动与退出
- 25.3. 操作窗口与基板
- 25.4. 文字内容操作
- 25.5. 获取用户输入
- 26. 模板引擎:Jinja2
❱
- 26.1. 加载模板文件
- 26.2. 使用变量
- 26.3. 控制指令
- 26.4. 运算符
- 26.5. 过滤器
- 26.6. 宏
- 26.7. 模板继承
- 26.8. 测试操作
- 26.9. 静态文件引入
- 27. 序列化工具:marshmallow
❱
- 27.1. 建立 Schema
- 27.2. 序列化和反序列化
- 28. 任务调度:Celery
❱
- 28.1. 基础知识
- 28.2. 最小工作进程示例
- 28.3. 选择中间人
- 28.4. 任务调用
- 28.5. 任务结果的获取
- 28.6. 任务组
- 28.7. 工作进程部署
- 29. 定时任务:APScheduler
❱
- 29.1. 基本概念
- 29.2. 调度器
- 29.3. 触发器
- 29.4. 任务存储器
- 29.5. 执行器
- 29.6. 任务默认行为
- 29.7. 调度事件
- 29.8. 一个完整示例
- 30. AMQP 实现:Pika
❱
- 30.1. 最小应用
- 30.2. 基础名词
- 30.3. 连接队列
- 30.4. 通道
- 30.5. 使用 BlokcingConnection 消费消息的示例
- 30.6. 异步生产和消费的设计概念
- 30.7. 利用 Pika 实现 RPC
- 30.8. 消息属性
- 31. 高级 AMQP 应用:Kombu
❱
- 31.1. 建立连接
- 31.2. Exchange 和 Queue
- 31.3. 生产者
- 31.4. 消费者
- 32. 微服务框架:Nameko
❱
- 32.1. 最小 RPC 服务
- 32.2. 一些基本概念
- 32.3. 定义和访问 RPC 方法
- 32.4. 运行 RPC 服务
- 32.5. 事件系统
- 32.6. 定时任务
- 32.7. 自定义 Extensions
- 32.8. 实现微服务所需要注意的事项
- 33. 网络通信:Twisted
❱
- 33.1. 最小应用
- 33.2. 安装
- 33.3. Reactor
- 33.4. 接口与协议
- 33.5. Deferred
- 33.6. 内联回调
- 33.7. Twisted 应用
- 34. 异步 HTTP:aiohttp
❱
- 34.1. 作为客户端使用
- 34.2. 建立 HTTP 服务
- 35. 流行 Web 框架:Flask
❱
- 35.1. 约定项目结构
- 35.2. Flask 及其依赖功能的安装
- 35.3. 应用配置与启动
- 35.4. 全局配置项
- 35.5. 一些特殊的全局变量
- 35.6. 路由定义
- 35.7. 渲染模板
- 35.8. 请求钩子
- 35.9. 获取请求数据
- 35.10. 控制 Cookies
- 35.11. 重定向与抛出错误
- 35.12. 使用 Session
- 35.13. 多模块应用
- 35.14. 信号机制
- 35.15. 日志
- 35.16. 使用扩展增强 Flask 功能
- 35.17. CLI 工具
- 35.18. 部署站点
- 36. 异步 Web 框架:Starlette
❱
- 36.1. 最小应用
- 36.2. 主应用类
- 36.3. 路由定义
- 36.4. Endpoints
- 36.5. 请求解析
- 36.6. 组建响应
- 36.7. WebSocket
- 36.8. 静态文件
- 36.9. 模板渲染
- 36.10. 中间件
- 36.11. 集成数据库访问支持
- 36.12. 身份验证
- 36.13. 配置文件
- 36.14. 后台任务
- 36.15. 部署 Starlette 应用
- 37. 异步版 Flask:Sanic
❱
- 37.1. 最小应用
- 37.2. 项目配置
- 37.3. 路由定义
- 37.4. 获取请求数据
- 37.5. 输出响应
- 37.6. 异常控制
- 37.7. 控制 Cookies
- 37.8. 拦截修饰器
- 37.9. 使用类来处理请求
- 37.10. 日志
- 37.11. 中间件
- 37.12. 生命周期事件
- 37.13. 定时任务
- 37.14. WebSocket
- 37.15. 部署站点
- 37.16. 关于异步 Web 框架的注意事项
- 38. Nginx 部署 Web 应用
❱
- 38.1. 配置文件结构
- 38.2. 全局配置项解析
- 38.3. HTTP 块设置
- 38.4. 虚拟主机设置
- 38.5. 反向代理设置
- 38.6. 负载均衡设置
- 38.7. 通过 uWSGI 来运行 Python 应用
- 39. 深度学习基础
❱
- 39.1. 基本概念
- 39.2. 常见名词
- 39.3. 神经网络的数据
- 39.4. 张量运算
- 39.5. 梯度优化
- 39.6. 数据组织
- 39.7. 数据预处理
- 39.8. 问题分类
- 39.9. 过拟合与欠拟合
- 39.10. 通用工作流程
- 39.11. 卷积核的确定
- 39.12. 常用池化层选择
- 40. 乐高积木:Keras
❱
- 40.1. 模型构建
- 40.2. 常用层
❱
- 40.2.1. 全连接层
- 40.2.2. 激活层
- 40.2.3. 高级激活层
- 40.2.4. Flatten 层
- 40.2.5. Dropout 层
- 40.2.6. 变形层
- 40.2.7. RepeatVector
- 40.2.8. Lambda 层
- 40.2.9. 正则化层
- 40.2.10. 空间 Dropout 层
- 40.2.11. 卷积层
- 40.2.12. 裁剪层
- 40.2.13. 池化层
- 40.2.14. 局部连接层
- 40.2.15. 循环层
- 40.3. 损失函数
- 40.4. 激活函数
- 40.5. 优化器
- 40.6. 评价函数
- 40.7. 预处理与工具
- 40.8. 绘制训练统计图
- 41. 燎原的火种:PyTorch
❱
- 41.1. 张量
- 41.2. 张量计算
- 41.3. 自动微分
- 41.4. 神经网络构建
- 41.5. 损失计算与权重更新
- 41.6. 模型训练与应用
- 41.7. 模型保存与加载
- 41.8. 与 Keras 的不同
- 41.9. 使用 Torchvision 准备数据
- 41.10. 使用 scikit-image 来进行图片的预处理
- 42. 机器学习工具箱:scikit-learn
❱
- 42.1. 方案选择
- 42.2. 分类、回归与聚类算法的使用
- 42.3. 交叉验证
- 42.4. 超参数调整
- 42.5. 模型评估
- 42.6. 标签变换
- 43. 使用 Visual Studio Code 编辑 Python 项目
❱
- 43.1. 开发套件安装与基本配置
- 43.2. 项目环境建立与工作区配置
- 43.3. 调试配置文件
- 44. Setuptools
❱
- 44.1. 创建一个简单的包
- 44.2. setup 函数的常用参数
- 44.3. 使用find_package()来收集包
- 44.4. 服务的动态发现
- 45. 使用 PyInstaller 创建可执行应用
❱
- 45.1. 常用命令行参数
- 45.2. 使用 spec 文件配置参数
- 45.3. 常见问题
- 46. py2app 和 py2exe
❱
- 46.1. 安装
- 46.2. 最小 setup.py 文件
- 46.3. 跨平台 setup.py 文件配置
- 46.4. plist 配置
- 46.5. py2app 的其他配置项
- 46.6. py2exe 的配置