上篇 Python程序设计基础 1
第1章 程序设计与Python 1
1.1 程序设计语言 1
1.1.1 软件定义的时代 1
1.1.2 程序设计语言 2
1.1.3 编译程序与解释程序 3
1.1.4 计算思维与程序设计 4
1.2 Python语言与计算生态 5
1.2.1 Python语言的历史 5
1.2.2 Python语言的特征 5
1.2.3 Python的计算生态 7
1.3 Python的安装与运行方式 9
1.3.1 Python的下载与安装 9
1.3.2 Python的运行方式 12
1.4 Python开发者的编辑器和IDE 13
1.4.1 Jupyter Notebook 14
1.4.2 PyCharm 15
本章习题 16
第2章 Python基础 17
2.1 Python程序基本构成与风格 18
2.1.1 认识第一个Python程序 18
2.1.2 Python程序的基本结构 19
2.1.3 Python程序规范 20
2.1.4 Python之禅——大道至简 21
2.2 Python语法基础 22
2.2.1 标识符 22
2.2.2 变 量 23
2.2.3 关键字 23
2.2.4 运算符与表达式 25
2.2.5 语 句 28
2.3 Python数据类型 28
2.3.1 数据类型 29
2.3.2 序列类型 31
2.3.3 字典类型 32
2.4 Python的模块与函数 33
2.4.1 库与模块 33
2.4.2 第三方库的安装 34
2.4.3 导入模块 35
2.4.4 函 数 36
2.4.5 包 37
本章习题 37
第3章 程序控制结构 38
3.1 顺序结构 38
3.1.1 赋值语句 38
3.1.2 基本输入和输出 42
3.1.3 顺序结构 44
3.2 选择结构 46
3.2.1 单分支if语句 46
3.2.2 双分支if-else语句 47
3.2.3 多分支if-elif-else语句 49
3.2.4 嵌套的if语句 52
3.3 循环结构 54
3.3.1 while语句 54
3.3.2 for语句 57
3.3.3 循环嵌套 59
3.3.4 break语句与continue语句 61
3.3.5 循环结构中的else子句 63
3.3.6 实 例 65
本章习题 67
第4章 序 列 70
4.1 序列概述 71
4.1.1 索 引 71
4.1.2 分 片 71
4.1.3 通用序列类型操作 74
4.1.4 通用序列类型常用的内置函数 76
4.2 字符串 78
4.2.1 字符串的表示 78
4.2.2 字符串的格式化 80
4.2.3 字符串的方法 85
4.2.4 字符串实例 86
4.3 列 表 87
4.3.1 列表的表示 87
4.3.2 列表的方法 88
4.3.3 列表实例 90
4.4 元 组 93
4.4.1 元组的表示 93
4.4.2 元组的其他特性和作用 94
4.4.3 元组实例 96
4.5 range对象 98
4.5.1 range函数 98
4.5.2 range实例 98
本章习题 99
第5章 字典与集合 101
5.1 字 典 102
5.1.1 创建字典 102
5.1.2 字典的基本操作和方法 102
5.1.3 字典实例 105
5.2 集 合 108
5.2.1 创建集合 108
5.2.2 集合的基本操作和方法 109
5.2.3 集合实例 112
本章习题 113
第6章 函 数 115
6.1 函数的概念 116
6.1.1 函数的定义 116
6.1.2 函数的返回 117
6.1.3 匿名函数 117
6.2 函数的参数与调用 118
6.2.1 参数传递 118
6.2.2 参数的分类 119
6.2.3 函数改造示例 121
6.3 递归函数 122
6.3.1 递归模式 122
6.3.2 递归应用案例 123
6.4 内置模块 124
6.4.1 os模块中的函数 124
6.4.2 random模块中的函数 126
6.4.3 datetime模块中的函数 128
6.5 变量的作用域 131
6.5.1 变量的作用域 131
6.5.2 作用域的类型 131
本章习题 133
第7章 异常捕捉 135
7.1 Python中的异常 135
7.2 异常捕捉与处理 137
7.2.1 try-except语句 137
7.2.2 多个except子句和一个except子句捕捉多个异常 138
7.2.3 else子句与finally子句 143
本章习题 147
第8章 文 件 149
8.1 文件基本概念 150
8.1.1 Python文件系统 150
8.1.2 文件系统的使用过程 151
8.2 文件的基本操作 153
8.2.1 文件的打开和关闭 153
8.2.2 文件的读写 154
8.2.3 文件的定位 155
8.2.4 文件的其他操作 157
8.3 各种类型文档的文件操作 157
8.3.1 txt文件 158
8.3.2 csv文件 158
8.3.3 JSON文件 162
*8.4 Python图像库PIL 164
8.4.1 PIL案例 165
8.4.2 PIL常用类 166
8.5 综合实例 169
8.5.1 文本分词 169
8.5.2 分词结果清洗 170
8.5.3 TopN词汇输出 170
本章习题 173
下篇 Python高级应用 175
第9章 面向对象程序设计 175
9.1 面向对象程序设计基本概念 175
9.1.1 面向对象程序设计 175
9.1.2 面向对象程序设计的基本特征 176
9.2 类与对象 176
9.2.1 类的定义 177
9.2.2 对象的定义 177
9.2.3 构造函数和析构函数 179
9.2.4 类属性与实例属性 180
9.3 继 承 182
9.3.1 子类的创建 182
9.3.2 访问控制 183
9.4 常用类和实例相关内置函数 185
本章习题 186
第10章 Python科学计算 187
10.1 什么是科学计算 187
10.2 NumPy简介 188
10.2.1 ndarray的基本属性 188
10.2.2 创建ndarray 189
10.2.3 ndarray的操作和运算 192
10.3 SciPy简介 196
10.3.1 常数模块 196
10.3.2 特殊函数模块 196
10.3.3 线性代数运算模块 197
10.3.4 优化和拟合模块 199
10.3.5 统计与随机数模块 201
10.3.6 积分计算模块 204
10.3.7 图像处理模块 206
本章习题 208
第11章 pandas数据分析 210
11.1 pandas简介与安装 210
11.1.1 pandas简介 211
11.1.2 pandas的安装与导入 211
11.2 pandas数据结构——Series与DataFrame 211
11.2.1 pandas数据结构 211
11.2.2 Series 212
11.2.3 DataFrame 217
11.3 pandas数据清洗 226
11.3.1 删除无效列与行 227
11.3.2 重复值处理 227
11.3.3 空值与缺失值处理 228
11.3.4 空格处理 229
11.3.5 异常值处理 229
11.4 pandas数据分析 230
11.4.1 导入所需库 230
11.4.2 数据加载与数据集统计信息查看 230
11.4.3 数据清洗 231
11.4.4 数据分析 232
11.5 pandas绘图 233
11.5.1 Series绘图 233
11.5.2 DataFrame绘图 234
本章习题 235
第12章 Python数据可视化 237
12.1 Python数据可视化简介 237
12.2 Matplotlib 238
12.2.1 Matplotlib简介与安装 238
12.2.2 Matplotlib基本绘图 238
12.2.3 Matplotlib图像类型及其绘制 247
12.2.4 Matplotlib绘图展示 255
12.3 seaborn 257
12.3.1 seaborn简介与安装 257
12.3.2 seaborn绘图 257
12.3.3 seaborn绘图展示 268
12.4 PyEcharts 269
12.4.1 PyEcharts简介与安装 269
12.4.2 PyEcharts基础 269
12.4.3 PyEcharts绘图 271
12.4.4 PyEcharts其他图例展示 280
本章习题 282
第13章 网络爬虫 283
13.1 预备知识 284
13.1.1 HTML基础 284
13.1.2 Chrome浏览器开发者工具 287
13.1.3 Network面板的XHR页面 288
13.2 网络爬虫概述 289
13.2.1 网络爬虫系统的结构 289
13.2.2 网络爬虫的类型 289
13.2.3 网络爬虫的工作流程 290
13.3 Requests爬虫库 291
13.3.1 requests库的使用 291
13.3.2 requests的异常处理 294
13.4 BeautifulSoup4库的使用 295
13.4.1 BeautifulSoup4库概述 296
13.4.2 BeautifulSoup的对象类型 296
13.4.3 创建BeautifulSoup对象 297
13.4.4 BeautifulSoup应用示例 299
13.4.5 BeautifulSoup:CSS 302
13.4.6 遍历文档树 303
13.5 案例1:爬取中国天气网数据 304
13.5.1 HTML页面分析 304
13.5.2 程序实现 306
13.6 案例2:爬取国家统计局历年GDP数据 309
13.6.1 主题页面的结构特征 309
13.6.2 网页数据接口分析 309
13.6.3 JSON格式解析 311
13.6.4 网络爬虫实现代码 312
13.7 案例3:爬取古诗文网的名句 314
13.7.1 古诗文名句数据源的确定 314
13.7.2 网页结构分析 315
13.7.3 程序实现 316
本章习题 320
第14章 Python与机器学习 322
14.1 人工智能技术概述 323
14.1.1 人工智能发展简史 323
14.1.2 人工智能的研究领域和应用场景 325
14.1.3 人工智能、机器学习与深度学习 326
14.1.4 机器学习的分类 326
14.1.5 机器学习的流程 328
14.1.6 深度学习框架 330
14.2 深度学习神经网络基础 331
14.2.1 神经元模型与感知机 331
14.2.2 深度学习的概念与结构 332
14.2.3 前向传播、反向传播与梯度 333
14.2.4 深度学习的张量概念 334
14.2.5 常用激活函数 336
14.2.6 深度学习案例:MNIST手写数字识别 338
14.3 卷积神经网络概述 340
14.3.1 卷积神经网络的层结构 340
14.3.2 卷积与卷积运算 342
14.3.3 用可视化理解卷积过程 343
14.3.5 用卷积神经网络技术实现手写数字识别 344
14.4 深度学习案例:猫狗图片识别 347
14.4.1 准备数据集 347
14.4.2 构建网络 349
14.4.3 模型编译 352
14.4.4 数据预处理 352
14.4.5 训练模型 353
14.4.6 损失曲线和精度曲线 354
14.4.7 使用数据增强方法 355
14.4.8 在模型中增加Dropout层 357
14.4.9 自定义猫狗图像样本进行识别 359
14.5 用生成式对抗网络实现手写数字图像 360
14.5.1 GAN的工作原理 361
14.5.2 GAN的应用场景 361
14.5.3 GAN在MNIST数据集中的应用 362
14.5.4 GAN生成手写数字图像实现源代码 363
14.5.5 GAN生成的手写数字图像示例 366
本章习题 367
参考文献 369