目 录
第Ⅰ部分 编程
第1章 编程导论 2
1.1 作为职业的编程 2
1.2 计算机如何工作 5
1.3 现代计算简史 9
1.3.1 Unix操作系统 9
1.3.2 现代编程 10
1.4 谈论编程语言 11
1.5 程序员的问题求解 13
第2章 编程工具 16
2.1 Shell 16
2.2 版本控制系统 19
2.3 集成开发环境 26
2.4 Web浏览器 27
第3章 关于Python 29
3.1 Python软件基金会 30
3.2 Python之禅 30
3.3 Python解释器 32
3.4 Python标准库 33
3.5 第三方库 34
3.6 版本与开发 35
第Ⅱ部分 Python
第4章 安装与运行Python 37
4.1 安装Python 37
4.1.1 Windows 37
4.1.2 macOS 38
4.1.3 Linux 39
4.2 安装和使用pip 39
4.2.1 Windows 40
4.2.2 macOS 40
4.2.3 Linux 40
4.3 安装和使用Jupyter处理IPython文件 41
4.4 虚拟环境 43
4.5 Anaconda 45
第5章 Python快速入门 47
5.1 变量 47
5.2 数据类型 49
5.3 运算符 53
5.3.1 算术运算符 53
5.3.2 运算符和赋值 55
5.3.3 比较运算符 56
5.3.4 同一性运算符 57
5.3.5 布尔运算符 58
5.3.6 成员运算符 59
5.4 控制流 59
5.4.1 if和else 60
5.4.2 for 61
5.4.3 while 61
5.5 函数 62
5.6 类 64
5.7 数据结构 66
5.7.1 列表 67
5.7.2 字典 68
5.7.3 元组 69
5.7.4 集合 70
5.8 练习 71
第6章 列表与字符串 73
6.1 字符串操作 73
6.2 列表操作 76
6.3 切片 78
6.4 列表推导式 81
6.5 练习 84
第7章 字典、集合与元组 85
7.1 字典 85
7.1.1 字典推导式 88
7.1.2 归约至字典 89
7.2 集合 91
7.3 元组 93
7.4 练习 94
第8章 其他类型的对象 97
8.1 其他数值 97
8.2 日期 101
8.3 字节 104
8.4 练习 107
第9章 可迭代对象、迭代器、生成器与循环 108
9.1 可迭代对象和迭代器 108
9.2 生成器 110
9.3 使用pass、break、else和continue进行循环 112
9.4 赋值表达式 115
9.5 海象运算符 115
9.6 递归 116
9.7 练习 120
第10章 函数 121
10.1 位置参数和关键字参数 121
10.2 函数作为一等对象 126
10.3 lambda函数 129
10.4 命名空间 130
10.5 装饰器 133
10.6 练习 138
第11章 类 140
11.1 静态方法和属性 142
11.2 继承 144
11.3 多重继承 146
11.4 封装 150
11.5 多态 153
11.6 练习 155
第12章 编写更简洁的代码 156
12.1 PEP 8与代码风格 156
12.2 注释与文档字符串 157
12.3 文档 160
12.4 代码检查 161
12.5 格式化 164
12.6 类型提示 165
第Ⅲ部分 高级主题
第13章 错误与异常 170
13.1 处理异常 170
13.2 else与finally 173
13.3 引发异常 175
13.4 自定义异常 177
13.5 异常处理模式 179
13.6 练习 185
第14章 模块与包 187
14.1 模块 187
14.2 包 191
14.3 安装包 196
14.4 练习 201
第15章 文件操作 202
15.1 读取文件 202
15.2 写入文件 206
15.3 二进制文件 208
15.4 数据缓冲 210
15.5 创建与删除文件和目录 212
15.6 数据的序列化、反序列化与封存处理 214
15.7 练习 216
第16章 日志 218
16.1 logging模块 218
16.2 日志处理器 223
16.3 格式化 225
16.4 练习 229
第17章 线程与进程 230
17.1 线程与进程的工作原理 230
17.2 线程模块 231
17.3 锁 235
17.4 队列 237
17.5 多进程模块 239
17.6 练习 246
第18章 数据库 247
18.1 安装与使用SQLite 248
18.1.1 安装SQLite 248
18.1.2 使用SQLite 249
18.2 查询语言语法 251
18.3 使用Python操作SQLite 253
18.4 练习 259
第19章 单元测试 260
19.1 单元测试框架 261
19.2 测试准备与清理 264
19.3 模拟方法 266
19.4 模拟的副作用 270
第Ⅳ部分 Python框架
第20章 REST API与Flask 274
20.1 HTTP与API 274
20.2 Flask应用程序入门 278
20.3 Flask中的API 281
20.4 数据库 283
20.5 认证 286
20.6 会话 288
20.7 模板 292
第21章 Django 295
21.1 安装Django并启动Django 296
21.2 数据库和迁移 300
21.3 Django管理界面 303
21.4 模型 304
21.5 更多视图和模板 306
21.6 更多资源 310
第22章 网页抓取与Scrapy 311
22.1 安装和使用Scrapy 312
22.2 解析HTML 314
22.3 Item 318
22.4 使用Scrapy进行爬取 319
22.5 项目管道 322
第23章 NumPy和Pandas数据分析 325
23.1 NumPy数组 326
23.2 Pandas数据框 329
23.3 清洗 331
23.4 过滤和查询 335
23.5 分组和聚合 337
第24章 使用Matplotlib和Scikit-learn进行机器学习 341
24.1 机器学习模型的类型 342
24.2 使用Matplotlib进行探索性分析 344
24.3 使用Scikit-learn构建监督模型 351
24.4 使用Scikit-learn评估分类模型 356
