第1部分 基础篇
第1章 Python概述 3
1.1 Python发展史 3
1.2 安装Python 4
1.2.1 Windows 4
1.2.2 Mac OS X 5
1.3 第一个Python程序 6
1.3.1 使用IDE交互模式 6
1.3.2 用IDE编写Python程序输出 6
1.3.3 在命令行运行Python程序 8
1.4 小结 8
1.5 习题 8
第2章 Python编程基础 10
2.1 程序基本结构 10
2.1.1 代码块 10
2.1.2 代码注释 10
2.1.3 语句续行 11
2.1.4 语句分隔 11
2.1.5 关键字与大小写 12
2.2 输入和输出 12
2.2.1 基本输入 12
2.2.2 基本输出 12
2.3 数字 13
2.3.1 数字常量 14
2.3.2 数字运算 15
2.3.3 小数 18
2.3.4 分数 19
2.3.5 数学函数 20
2.4 变量 21
2.4.1 变量的命名 21
2.4.2 变量的赋值 21
2.4.3 变量的共享引用 23
2.4.4 变量的删除 23
2.5 字符串 24
2.5.1 字符串的类型 24
2.5.2 字符串操作 25
2.5.3 字符串处理方法 27
2.5.4 字符串格式化 29
2.6 列表 32
2.6.1 列表基本操作 32
2.6.2 列表常用方法 35
2.7 元组 38
2.7.1 元组的基本操作 38
2.7.2 元组方法 40
2.8 字典 41
2.8.1 字典的特点 41
2.8.2 字典基本操作 42
2.8.3 字典常用方法 44
2.8.4 字典视图 46
2.9 集合 48
2.9.1 集合的创建与删除 48
2.9.2 集合运算 49
2.9.3 集合操作 50
2.9.4 冻结集合 51
2.10 文件 51
2.10.1 打开和关闭文件 52
2.10.2 读写文本文件 53
2.10.3 读写二进制文件 56
2.10.4 用文件存储Python对象 57
2.11 小结 57
2.12 习题 58
第3章 选择与循环 59
3.1 if分支结构 59
3.1.1 if语句的基本结构 59
3.1.2 if…else三元表达式 60
3.2 for循环 61
3.2.1 for循环基本结构 61
3.2.2 多变量迭代 62
3.2.3 break 和continue语句 62
3.2.4 for循环嵌套 63
3.2.5 列表解析 63
3.3 while循环 65
3.3.1 while循环基本结构 65
3.3.2 while循环嵌套 66
3.4 迭代与迭代函数 66
3.4.1 迭代 66
3.4.2 zip()、map()和filter()函数 68
3.5 小结 69
3.6 习题 69
第4章 函数与模块 71
4.1 定义函数 71
4.2 实参和形参 71
4.2.1 关键字实参 72
4.2.2 有默认值的形参 73
4.2.3 任意数量的实参 74
4.3 返回值 75
4.3.1 返回简单值 75
4.3.2 返回字典 76
4.4 局部和全局变量 77
4.4.1 局部变量不能在全局作用域内使用 78
4.4.2 局部作用域不能使用其他局部作用域内的变量 78
4.4.3 全局变量可以在局部作用域中读取 79
4.4.4 名称相同的局部变量和全局变量 79
4.5 global语句 80
4.6 模块 81
4.6.1 标准库模块 81
4.6.2 编写模块 83
4.6.3 导入模块 84
4.6.4 dir()函数 85
4.6.5 文档字符串 86
4.6.6 __name__属性 87
4.7 包 87
4.8 小结 88
4.9 习题 88
第5章 面向对象编程 90
5.1 Python面向对象简介 90
5.2 创建类和实例 90
5.2.1 创建Cat类 90
5.2.2 创建实例 91
5.3 字段 93
5.4 普通方法 93
5.4.1 self参数 93
5.4.2 __init__()方法 93
5.5 类方法 94
5.6 类的继承 97
5.6.1 自动继承 97
5.6.2 调用父类的构造函数 98
5.6.3 重写父类 99
5.7 导入类 99
5.8 类编码风格 102
5.9 小结 102
5.10 习题 102
第6章 异常 104
6.1 简介 104
6.2 常见错误异常 104
6.2.1 错误 104
6.2.2 EOFError异常 104
6.2.3 ZeroDivisionError异常 105
6.2.4 KeyError异常 105
6.2.5 IndexError异常 106
6.2.6 AttributeError异常 106
6.2.7 OSError异常 107
6.3 处理异常 107
6.3.1 异常的处理 107
6.3.2 引发异常 108
6.3.3 try…finally 109
6.3.4 with语句 110
6.4 小结 111
6.5 习题 111
第7章 数据库编程 112
7.1 关系数据库概述 112
7.2 MySQL数据库管理系统 113
7.2.1 数据库安装与配置 113
7.2.2 连接MySQL服务器 117
7.2.3 常见的管理命令 119
7.3 Python DBAPI 121
7.3.1 安装PyMySQL模块 121
7.3.2 建立数据连接 121
7.3.3 创建游标 122
7.4 MySQL数据库操作 123
7.4.1 使用Navicat for MySQL管理软件 123
7.4.2 连接数据库 125
7.4.3 创建数据表 126
7.4.4 操作MySQL数据表 127
7.5 小结 128
7.6 习题 128
第8章 Tkinter GUI 129
8.1 初识图形用户界面 129
8.2 Tkinter编程基础 129
8.2.1 窗体 129
8.2.2 组件打包 130
8.2.3 添加按钮和事件处理函数 132
8.2.4 Packer布局 134
8.2.5 Grid布局 135
8.2.6 Place布局 136
8.2.7 使用框架 137
8.3 Tkinter组件 138
8.3.1 组件通用属性设置 138
8.3.2 标签组件Label 141
8.3.3 按钮组件 Button 143
8.3.4 输入组件Entry 144
8.3.5 列表框组件Listbox 148
8.3.6 复选框组件Checkbutton 149
8.3.7 单选按钮组件Radiobutton 150
8.3.8 旋转框组件Spinbox 152
8.3.9 滚动条组件 Scrollbar 153
8.3.10 文本框组件Text 155
8.3.11 画布组件Canvas 157
8.3.12 顶层窗口组件Toplevel 159
8.3.13 菜单组件Menu 161
8.4 对话框 162
8.4.1 消息对话框 163
8.4.2 文件对话框 164
8.4.3 颜色对话框 167
8.5 小结 168
8.6 习题 168
第2部分 实战篇
第9章 数据可视化 171
9.1 数据可视化简介 171
9.2 安装matplotlib 171
9.3 绘制折线图 171
9.4 绘制散点图 173
9.5 绘制饼图 175
9.6 绘制直方图 176
9.7 CSV格式数据下载及显示 177
9.7.1 分析CSV文件头 178
9.7.2 提取并读取数据 178
9.8 使用Pygal绘制GDP世界地图 179
9.8.1 获取两个字的国别码 179
9.8.2 绘制世界地图 180
9.8.3 在世界地图上显示数字 181
9.8.4 绘制完整的GDP世界地图 182
9.9 JSON格式数据显示 184
9.10 数据分析工具——Pandas 186
9.11 小结 187
9.12 习题 187
第10章 数据分析 189
10.1 数据分析以及程序包 189
10.2 数据预处理 189
10.2.1 准备工作 190
10.2.2 特征编码 190
10.2.3 标准化 191
10.2.4 归一化 192
10.2.5 过滤式特征选择 193
10.3 线性回归 193
10.3.1 线性回归器 194
10.3.2 回归的拟合效果评价 195
10.3.3 保存模型数据 196
10.4 决策树回归 197
10.5 简单分类器 198
10.6 逻辑回归分类 200
10.7 朴素贝叶斯分类器 202
10.8 小结 204
10.9 习题 204
第11章 图像分析 205
11.1 安装OpenCV 205
11.2 图像基本操作 205
11.2.1 读入图像 206
11.2.2 在窗口显示图像 206
11.2.3 保存图像 208
11.2.4 图像基础操作 208
11.3 边缘检测 213
11.3.1 Sobel算子 213
11.3.2 Laplacian算子 214
11.3.3 Canny算子 215
11.4 轮廓检测 217
11.5 直线和圆检测 218
11.5.1 直线检测 218
11.5.2 圆检测 220
11.6 图像特征提取和匹配 221
11.6.1 Harris角点检测 221
11.6.2 ORB 222
11.6.3 暴力匹配 223
11.6.4 K最近邻匹配 225
11.7 小结 226
11.8 习题 226
第12章 图像分类 227
12.1 图像分类简介 227
12.2 手写体数字识别MNIST手写体识别 229
12.2.1 MNIST数据集 229
12.2.2 卷积神经网络 230
12.2.3 手写体识别实战 230
12.3 人脸识别 236
12.3.1 人脸定位 237
12.3.2 人脸识别 238
12.4 小结 239
12.5 习题 239
第13章 音频处理 240
13.1 简介 240
13.2 Python语音识别软件包 241
13.2.1 安装SpeechRecognation 241
13.2.2 识别器类 241
13.2.3 创建识别器 242
13.3 语音识别实战 244
13.3.1 语音识别环境的搭建 244
13.3.2 接口使用说明 244
13.3.3 音频爬取 244
13.3.4 音频格式转化 246
13.4 小结 248
13.5 习题 248
参考文献 249