图书目录

目 录

第1 章 Python 3 概述

1.1 Python 简介  2

1.1.1 Python 的前世今生  2

1.1.2 Python 的应用场合  2

1.1.3 Python 的特性  3

1.1.4 Python 的版本  4

1.2 Python 开发环境  5

1.2.1 在Windows 系统中安装Python 3  5

1.2.2 在Linux 系统中安装Python 3  7

1.2.3 在mac OS 系统中安装Python 3  7

1.3 第一个程序——Hello World! · 8

1.3.1 代码示例  8

1.3.2 代码解析  9

1.3.3 注释  9

1.3.4 IDLE 简介与代码调试  10

1.3.5 输入/输出函数 · 16

1.4 实验  18

1.4.1 好用的集成开发工具 · 18

1.4.2 PyCharm 的安装 · 19

1.4.3 示例:绘制桃心 · 21

1.4.4 示例简析  22

1.5 小结  23

1.6 习题  23

第2 章 基本语法

2.1 代码格式  25

2.1.1 编码  25

2.1.2 注释  26

2.1.3 缩进  27

2.1.4 行宽  27

2.1.5 空行  27

2.1.6 空格  28

2.2 Python 语言构成要素  29

2.2.1 标识符 · 29

XII Python 语言(第2 版)

2.2.2 关键字 · 29

2.2.3 变量  29

2.2.4 函数和方法 · 30

2.2.5 属性和类  30

2.2.6 模块和包  30

2.2.7 规定  31

2.3 变量与数据类型 · 32

2.3.1 变量  32

2.3.2 变量命名规则  32

2.3.3 数据类型  32

2.3.4 查看数据类型  34

2.3.5 数据类型的转换 · 34

2.4 运算符 · 35

2.4.1 算术运算符 · 35

2.4.2 比较运算符 · 35

2.4.3 复合赋值运算符 · 36

2.4.4 位运算符  36

2.4.5 逻辑运算符 · 37

2.4.6 成员运算符 · 37

2.4.7 身份运算符 · 37

2.4.8 运算符优先级  38

2.5 实验  38

2.5.1 常量和变量的使用  38

2.5.2 运算符和表达式的使用  39

2.5.3 type()函数的使用  39

2.5.4 help()函数的使用  40

2.6 小结  41

2.7 习题  41

第3 章 基本数据类型

3.1 数字  42

3.1.1 数字的表示 · 42

3.1.2 数字类型的转换 · 43

3.1.3 数字的运算 · 43

3.1.4 数字相关函数  43

3.2 元组  45

3.2.1 创建元组  45

3.2.2 使用元组  45

3.2.3 删除元组  46

3.2.4 元组的内置函数 · 47

3.3 列表  47

3.3.1 创建列表  47

3.3.2 使用列表  48

3.3.3 删除元素和列表 · 49

3.3.4 列表的内置函数与其他方法  49

3.4 字典  50

3.4.1 创建字典  50

3.4.2 使用字典  51

3.4.3 删除元素和字典 · 52

3.4.4 字典的内置函数和方法  52

3.5 集合  53

3.5.1 创建集合  53

3.5.2 使用集合  54

3.5.3 删除元素和集合 · 55

3.5.4 集合的方法 · 56

3.6 数据类型转换  57

3.6.1 六大数据类型之间的转换 · 57

3.6.2 类型转换的使用场景 · 58

3.7 实验  58

3.7.1 不可变类型的使用  58

3.7.2 可变类型的使用 · 59

3.8 小结  61

3.9 习题  61

第4 章 流程控制

4.1 流程图 · 62

4.1.1 流程图符号 · 62

4.1.2 流程图示例 · 63

4.2 顺序结构  64

4.2.1 输入、处理和输出  64

4.2.2 顺序程序示例  67

4.3 选择结构  68

4.3.1 单分支(if...) · 69

4.3.2 双分支(if...else)· 70

4.3.3 多分支(if...elif...else)  70

4.3.4 分支嵌套  71

4.4 循环结构  72

4.4.1 for 循环(包含range()函数) · 72

4.4.2 for 循环嵌套  73

4.4.3 for...if...else 循环  74

4.4.4 break 及continue 语句  75

XIV Python 语言(第2 版)

4.4.5 while 循环 · 75

4.5 迭代器 · 76

4.5.1 iter()函数  76

4.5.2 next()函数 · 77

4.5.3 生成器函数 · 78

4.6 实验  79

4.6.1 使用条件语句  79

4.6.2 使用for 语句 · 80

4.6.3 使用while 语句  80

4.6.4 使用break 语句  81

4.6.5 使用continue 语句  82

4.6.6 使用迭代器 · 82

4.7 小结  84

4.8 习题  84

第5 章 字符串与正则表达式

5.1 字符串 · 86

5.1.1 创建字符串 · 86

5.1.2 使用字符串 · 87

5.1.3 字符串的格式化 · 90

5.1.4 字符串的内置函数  91

5.2 正则表达式 · 95

5.2.1 认识正则表达式 · 95

5.2.2 re 模块 · 96

5.3 实验  98

5.3.1 使用字符串处理函数 · 98

5.3.2 使用正则表达式 · 98

5.3.3 使用re 模块  99

5.4 小结  99

5.5 习题  99

第6 章 函数

6.1 函数概述  101

6.1.1 函数的定义  101

6.1.2 全局变量 · 102

6.1.3 局部变量 · 103

6.2 函数的参数和返回值 · 104

6.2.1 参数传递的方式  105

6.2.2 位置参数和关键字参数 · 105

6.2.3 默认值参数  106

6.2.4 可变参数 · 107

6.2.5 函数的返回值 · 108

6.3 函数的调用 · 109

6.3.1 函数的调用方法  109

6.3.2 嵌套调用 · 109

6.3.3 使用闭包 · 110

6.3.4 递归调用 · 110

6.4 实验 · 111

6.4.1 声明和调用函数  111

6.4.2 在调试窗口中查看变量的值 · 112

6.4.3 使用函数参数和返回值 · 114

6.4.4 使用闭包和递归函数  116

6.4.5 使用Python 的内置函数  116

6.5 小结 · 117

6.6 习题 · 117

第7 章 模块

7.1 模块概述 · 118

7.1.1 模块与程序  118

7.1.2 命名空间 · 119

7.1.3 模块导入方法 · 120

7.1.4 自定义模块和包  121

7.2 安装第三方模块 · 122

7.3 模块应用实例  125

7.3.1 日期和时间:datetime 模块  125

7.3.2 读写JSON 数据:json 模块  128

7.3.3 系统相关:sys 模块  130

7.3.4 数学:math 模块 · 131

7.3.5 随机数:random 模块 · 133

7.4 在Python 中调用R 语言  135

7.4.1 安装rpy2 模块  135

7.4.2 安装R 语言工具  135

7.4.3 测试安装 · 137

7.4.4 调用R 示例  137

7.5 实验  138

7.5.1 使用datetime 模块 · 138

7.5.2 使用sys 模块  139

7.5.3 使用与数学有关的模块 · 140

7.5.4 自定义和使用模块 · 141

7.6 小结  141

XVI Python 语言(第2 版)

7.7 习题  142

第8 章 对象和类

8.1 面向对象概述  143

8.1.1 什么是面向对象编程  143

8.1.2 面向对象术语简介 · 143

8.2 类的定义与使用 · 144

8.2.1 类的定义 · 144

8.2.2 类的使用 · 145

8.2.3 类的构造方法及专有方法  145

8.2.4 类的访问权限 · 146

8.2.5 获取对象信息 · 147

8.3 类的特点  148

8.3.1 封装 · 148

8.3.2 多态 · 148

8.3.3 继承 · 149

8.3.4 多重继承 · 153

8.4 实验  154

8.4.1 声明类  154

8.4.2 类的继承和多态  155

8.4.3 复制对象 · 156

8.5 小结  157

8.6 习题  157

第9 章 异常

9.1 异常概述  158

9.1.1 认识异常 · 158

9.1.2 处理异常 · 158

9.1.3 抛出异常 · 163

9.2 异常处理流程  163

9.3 自定义异常 · 163

9.4 实验  165

9.4.1 利用try…except 处理除数为0 的异常 · 165

9.4.2 自定义异常  165

9.4.3 raise 关键字  166

9.4.4 内置异常处理语句 · 166

9.5 小结  167

9.6 习题  167

第10 章 文件操作

10.1 打开文件 · 168

10.1.1 访问文件的模式 · 169

10.1.2 文件缓冲区 · 169

10.2 基本的文件方法  170

10.2.1 读和写 · 170

10.2.2 读取行 · 170

10.2.3 关闭文件  171

10.2.4 重命名文件 · 172

10.2.5 删除文件  172

10.3 输入/输出函数  172

10.3.1 输出到屏幕 · 172

10.3.2 读取键盘输入  173

10.4 基本的目录方法  173

10.4.1 创建目录  173

10.4.2 显示当前工作目录  173

10.4.3 改变目录  174

10.4.4 删除目录  174

10.5 实验 · 174

10.5.1 文件操作  174

10.5.2 目录操作  175

10.5.3 I/O 函数 · 176

10.6 小结 · 176

10.7 习题 · 177

第11 章 项目实战:爬虫程序

11.1 爬虫概述 · 178

11.1.1 准备工作  179

11.1.2 爬虫类型  179

11.1.3 爬虫原理  180

11.2 爬虫三大库  180

11.2.1 Requests 库 · 181

11.2.2 BeautifulSoup 库 · 185

11.2.3 lxml 库· 191

11.3 案例剖析:酷狗TOP500 数据爬取 · 196

11.3.1 思路简析  196

11.3.2 代码实现  196

11.3.3 代码分析  197

11.4 Scrapy 框架 · 198

XVIII Python 语言(第2 版)

11.4.1 Scrapy 爬虫框架 · 198

11.4.2 Scrapy 的安装  199

11.4.3 Scrapy 的使用  201

11.5 实验 · 204

第12 章 项目实战:数据可视化

12.1 matplotlib 简介 · 206

12.1.1 Pyplot 模块介绍 · 206

12.1.2 plot()函数 · 209

12.1.3 绘制子图  210

12.1.4 添加标注  211

12.1.5 pylab 模块应用  213

12.2 Artist 模块介绍 · 214

12.2.1 Artist 模块概述  214

12.2.2 Artist 的属性 · 215

12.3 pandas 绘图  216

12.4 案例剖析:词云图 · 218

12.4.1 思路简析  219

12.4.2 代码实现  220

12.4.3 代码分析  221

12.5 实验 · 222

第13 章 项目实战:数据分析

13.1 数据清洗 · 223

13.1.1 编码问题  223

13.1.2 缺失值分析 · 224

13.1.3 去除异常值 · 224

13.1.4 去除重复值与冗余信息  225

13.2 数据存取 · 225

13.2.1 CSV 文件的存取  225

13.2.2 JSON 文件的存取 · 227

13.2.3 XLSX 文件的存取  227

13.2.4 MySQL 数据库文件的存取 · 229

13.3 NumPy · 234

13.3.1 NumPy 简介  235

13.3.2 NumPy 基础  235

13.4 案例剖析:房天下西安二手房数据分析 · 239

13.4.1 思路简析  239

13.4.2 代码实现  239

13.4.3 代码分析  240

目 录 XIX

13.5 实验 · 244

第14 章 Django

14.1 Django 概述  245

14.1.1 基本介绍  245

14.1.2 Django 的安装 · 246

14.1.3 创建第一个项目 · 248

14.2 Django 框架  250

14.2.1 Django 管理工具  250

14.2.2 Django 模板  251

14.2.3 Django 模块  258

14.2.4 Django 表单  263

14.2.5 Django 视图  268

14.2.6 Django 路由  270

14.3 Django 开发实战  271

14.3.1 需求分析  271

14.3.2 系统设计  271

14.3.3 编码实现  272

14.3.4 测试与上线 · 292

14.4 小结 · 293

14.5 习题 · 293

第15 章 项目实战:机器学习

15.1 机器学习概述 · 295

15.1.1 机器学习的内涵 · 295

15.1.2 机器学习的分类 · 297

15.1.3 典型模型的实现流程 · 299

15.1.4 典型应用场景  302

15.2 scikit-learn 简介 · 302

15.2.1 scikit-learn 的特点与功能  302

15.2.2 scikit-learn 的安装与测试  303

15.2.3 基于scikit-learn 的模型训练流程 · 305

15.2.4 scikit-learn 应用举例  307

15.3 Keras 简介  309

15.3.1 Keras 的特点与功能  309

15.3.2 Keras 的安装与测试  310

15.3.3 基于Keras 的模型训练流程  312

15.3.4 Keras 应用举例  314

15.4 案例剖析:鸢尾花分类 · 317

15.4.1 思路简析  317

XX Python 语言(第2 版)

15.4.2 代码实现  318

15.4.3 代码分析  320

15.5 实验 · 327

第16 章 项目实战:自然语言处理

16.1 自然语言处理概述 · 328

16.1.1 NLP 的前生今世  328

16.1.2 NLP 的相关概念  330

16.1.3 NLP 的常用工具  331

16.1.4 NLP 的应用领域  333

16.2 NLTK 简介· 333

16.2.1 NLTK 的特点与功能 · 334

16.2.2 NLTK 的安装与测试 · 335

16.2.3 NLTK 应用举例 · 338

16.3 gensim 简介  340

16.3.1 gensim 的特点 · 340

16.3.2 gensim 的核心概念 · 340

16.3.3 gensim 的安装与测试  341

16.3.4 gensim 应用举例  343

16.4 案例剖析:文本情感分析  346

16.4.1 思路简介  346

16.4.2 代码实现  347

16.4.3 代码分析  349

16.5 实验 · 351

第17 章 项目实战:推荐系统

17.1 推荐系统概述 · 352

17.1.1 推荐系统的发展历程 · 352

17.1.2 推荐系统的技术分类 · 353

17.1.3 推荐结果的评价指标 · 354

17.1.4 推荐系统的典型应用 · 356

17.2 基于内容的推荐技术简介  357

17.2.1 基于内容的推荐技术的基本思想  357

17.2.2 基于内容的推荐技术的实现流程  357

17.2.3 基于内容的推荐技术的优缺点 · 358

17.3 协同过滤技术概述 · 359

17.3.1 协同过滤技术简介  359

17.3.2 基于用户的协同过滤 · 360

17.3.3 基于物品的协同过滤 · 361

17.3.4 基于模型的协同过滤 · 361

17.3.5 协同过滤推荐技术的优缺点  362

17.4 混合推荐技术概述 · 363

17.4.1 混合推荐技术的基本思想 · 363

17.4.2 混合推荐技术的实现原理 · 363

17.5 案例剖析:电影推荐  367

17.5.1 思路简介  367

17.5.2 代码实现  368

17.5.3 代码分析  371

17.6 实验 · 376

参考文献 ....................................................................................................... 377

附录A Python 代码风格指南:PEP 8 ..................................................... 380

附录B IPython 指南 .................................................................................. 383

附录C PyCharm 指南 .............................................................................. 387

附录C PyCharm 指南 .............................................................................. 389