版本修订记录
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.
自由参数和默认值
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.
常用内建模块的使用
❱
15.1.
日期处理
15.2.
集合
15.3.
Base64编码
15.4.
字节数据打包
15.5.
散列算法
15.6.
辅助迭代操作
15.7.
URL
15.8.
调用动态链接库
16.
老牌 ORM:SQLAlchemy
❱
16.1.
连接数据库
16.2.
表映射定义
16.3.
数据查询
16.4.
数据修改
16.5.
执行原生 SQL 语句
16.6.
调用存储过程
17.
操作 Redis
❱
17.1.
连接数据库
17.2.
操作数据的键
17.3.
字符串及整型数据操作
17.4.
列表类型数据操作
17.5.
集合类型数据操作
17.6.
键值表数据操作
18.
科学计算:NumPy 和 SciPy
❱
18.1.
数据类型
18.2.
Ndarray
18.3.
广播
18.4.
数组操作
18.5.
线型代数
18.6.
SciPy 各子包功能
18.7.
积分
19.
数据分析:Pandas
❱
19.1.
核心数据结构
19.2.
基本数据结构方法
19.3.
统计方法
19.4.
数据控制方法
19.5.
与 SQL 语法的对比
20.
可视化图表:Matplotlib
❱
20.1.
图例和标题
20.2.
条形图
20.3.
直方图
20.4.
散点图
20.5.
堆叠图
20.6.
饼图
20.7.
样式
20.8.
子图
20.9.
实时图表
20.10.
添加文本
21.
内置 GUI 模块:Tkinter 框架
❱
21.1.
最小应用
21.2.
基础概念
21.3.
网格布局
21.4.
组件内容的承载
21.5.
常用组件
21.6.
使用菜单
21.7.
对话框
21.8.
文件选择对话框
22.
SDL 游戏库:pygame
❱
22.1.
模块列表
22.2.
最小应用
22.3.
一些基础概念
22.4.
创建基本窗口
22.5.
加载图片
22.6.
使用字体
22.7.
渲染画面
22.8.
读取事件
22.9.
控制帧速
23.
OpenGL 游戏库:pyglet
❱
23.1.
最小应用
23.2.
OpenGL上下文
23.3.
Display和Screen
23.4.
Window
23.5.
用户输入事件
23.6.
时间控制
23.7.
基础绘画
23.8.
显示文字
23.9.
显示图片
23.10.
播放声音
23.11.
应用资源
24.
终端 GUI:Curses
❱
24.1.
支持Windows系统
24.2.
Curses环境的启动与退出
24.3.
操作窗口与基板
24.4.
文字内容操作
24.5.
获取用户输入
25.
模板引擎:Jinja2
❱
25.1.
加载模板文件
25.2.
使用变量
25.3.
控制指令
25.4.
运算符
25.5.
过滤器
25.6.
宏
25.7.
模板继承
25.8.
测试操作
25.9.
静态文件引入
26.
序列化工具:marshmallow
❱
26.1.
建立Schema
26.2.
序列化和反序列化
27.
任务调度:Celery
❱
27.1.
基础知识
27.2.
最小工作进程示例
27.3.
选择中间人
27.4.
任务调用
27.5.
任务结果的获取
27.6.
任务组
27.7.
工作进程部署
28.
定时任务:APScheduler
❱
28.1.
基本概念
28.2.
调度器
28.3.
触发器
28.4.
任务存储器
28.5.
执行器
28.6.
任务默认行为
28.7.
调度事件
28.8.
一个完整示例
29.
AMQP 实现:Pika
❱
29.1.
最小应用
29.2.
基础名词
29.3.
连接队列
29.4.
通道
29.5.
使用BlokcingConnection消费消息的示例
29.6.
异步生产和消费的设计概念
29.7.
利用Pika实现RPC
29.8.
消息属性
30.
高级 AMQP 应用:Kombu
❱
30.1.
建立连接
30.2.
Exchange和Queue
30.3.
生产者
30.4.
消费者
31.
微服务框架:Nameko
❱
31.1.
最小RPC服务
31.2.
一些基本概念
31.3.
定义和访问RPC方法
31.4.
运行RPC服务
31.5.
事件系统
31.6.
定时任务
31.7.
自定义Extensions
31.8.
实现微服务所需要注意的事项
32.
网络通信:Twisted
❱
32.1.
最小应用
32.2.
安装
32.3.
Reactor
32.4.
接口与协议
32.5.
Deferred
32.6.
内联回调
32.7.
Twisted应用
33.
异步 HTTP:aiohttp
❱
33.1.
作为客户端使用
33.2.
建立HTTP服务
34.
流行 Web 框架:Flask
❱
34.1.
约定项目结构
34.2.
Flask及其依赖功能的安装
34.3.
应用配置与启动
34.4.
全局配置项
34.5.
一些特殊的全局变量
34.6.
路由定义
34.7.
渲染模板
34.8.
请求钩子
34.9.
获取请求数据
34.10.
控制Cookies
34.11.
重定向与抛出错误
34.12.
使用Session
34.13.
多模块应用
34.14.
信号机制
34.15.
日志
34.16.
使用扩展增强Flask功能
34.17.
CLI工具
34.18.
部署站点
35.
异步 Web 框架:Starlette
❱
35.1.
最小应用
35.2.
主应用类
35.3.
路由定义
35.4.
Endpoints
35.5.
请求解析
35.6.
组建响应
35.7.
WebSocket
35.8.
静态文件
35.9.
模板渲染
35.10.
中间件
35.11.
集成数据库访问支持
35.12.
身份验证
35.13.
配置文件
35.14.
后台任务
35.15.
部署Starlette应用
36.
异步版 Flask:Sanic
❱
36.1.
最小应用
36.2.
项目配置
36.3.
路由定义
36.4.
获取请求数据
36.5.
输出响应
36.6.
异常控制
36.7.
控制Cookies
36.8.
拦截修饰器
36.9.
使用类来处理请求
36.10.
日志
36.11.
中间件
36.12.
生命周期事件
36.13.
定时任务
36.14.
WebSocket
36.15.
部署站点
36.16.
关于异步Web框架的注意事项
37.
Nginx 部署 Web 应用
❱
37.1.
配置文件结构
37.2.
全局配置项解析
37.3.
HTTP块设置
37.4.
虚拟主机设置
37.5.
反向代理设置
37.6.
负载均衡设置
37.7.
通过uWSGI来运行Python应用
38.
深度学习基础
❱
38.1.
基本概念
38.2.
常见名词
38.3.
神经网络的数据
38.4.
张量运算
38.5.
梯度优化
38.6.
数据组织
38.7.
数据预处理
38.8.
问题分类
38.9.
过拟合与欠拟合
38.10.
通用工作流程
38.11.
卷积核的确定
38.12.
常用池化层选择
39.
乐高积木:Keras
❱
39.1.
模型构建
39.2.
常用层
❱
39.2.1.
全连接层
39.2.2.
激活层
39.2.3.
高级激活层
39.2.4.
Flatten层
39.2.5.
Dropout层
39.2.6.
变形层
39.2.7.
RepeatVector
39.2.8.
Lambda层
39.2.9.
正则化层
39.2.10.
空间Dropout层
39.2.11.
卷积层
39.2.12.
裁剪层
39.2.13.
池化层
39.2.14.
局部连接层
39.2.15.
循环层
39.3.
损失函数
39.4.
激活函数
39.5.
优化器
39.6.
评价函数
39.7.
预处理与工具
39.8.
绘制训练统计图
40.
燎原的火种:PyTorch
❱
40.1.
张量
40.2.
张量计算
40.3.
自动微分
40.4.
神经网络构建
40.5.
损失计算与权重更新
40.6.
模型训练与应用
40.7.
模型保存与加载
40.8.
与Keras的不同
40.9.
使用Torchvision准备数据
40.10.
使用scikit-image来进行图片的预处理
41.
机器学习工具箱:scikit-learn
❱
41.1.
方案选择
41.2.
分类、回归与聚类算法的使用
41.3.
交叉验证
41.4.
超参数调整
41.5.
模型评估
41.6.
标签变换
42.
使用 Visual Studio Code 编辑 Python 项目
❱
42.1.
开发套件安装与基本配置
42.2.
项目环境建立与工作区配置
42.3.
调试配置文件
43.
Setuptools
❱
43.1.
创建一个简单的包
43.2.
setup函数的常用参数
43.3.
使用find_package()来收集包
43.4.
服务的动态发现
44.
使用 PyInstaller 创建可执行应用
❱
44.1.
常用命令行参数
44.2.
使用spec文件配置参数
44.3.
常见问题
45.
py2app 和 py2exe
❱
45.1.
安装
45.2.
最小setup.py文件
45.3.
跨平台setup.py文件配置
45.4.
plist配置
45.5.
py2app的其他配置项
45.6.
py2exe的配置
Light (default)
Rust
Coal
Navy
Ayu
大道至简,实用至上:Python编程指南
版本修订记录
这个版本修订记录从版本 64 开始记录是因为这本小书之前的版本都是以 PDF 的形式编写和发布的。从版本 64 开始,这本小书将开始以线上书籍的方式编写和发布,以提高更新速度。
作者
首次发布
最新发布
版本
适用Python版本
徐涛
2018 年 6 月
2022 年 11 月
64
3.10
版本 64
改版以 MDBook 形式编写和发布。
增加 Python 3.10 中新增的
match
语句介绍。