第1章 启程 1
第2章 Python简介 6
2.1 Python基本元素 7
2.1.1对象、表达式和数值类型 8
2.1.2变量与赋值 9
2.1.3 Python IDE 11
2.2程序分支 12
2.3字符串和输入 14
2.3.1输入 15
2.3.2杂谈字符编码 16
2.4迭代 17
第3章 一些简单的数值程序 20
3.1穷举法 20
3.2 for循环 22
3.3近似解和二分查找 24
3.4关于浮点数 27
3.5牛顿-拉弗森法 29
第4章 函数、作用域与抽象 31
4.1函数与作用域 32
4.1.1函数定义 32
4.1.2关键字参数和默认值 33
4.1.3作用域 34
4.2规范 37
4.3递归 39
4.3.1斐波那契数列 40
4.3.2回文 42
4.4全局变量 45
4.5模块 46
4.6文件 47
第5章 结构化类型、可变性与高阶函数 50
5.1元组 50
5.2范围 52
5.3列表与可变性 52
5.3.1克隆 57
5.3.2列表推导 57
5.4函数对象 58
5.5字符串、元组、范围与列表 60
5.6字典 61
第6章 测试与调试 65
6.1测试 65
6.1.1黑盒测试 66
6.1.2白盒测试 68
6.1.3执行测试 69
6.2调试 70
6.2.1学习调试 72
6.2.2设计实验 72
6.2.3遇到麻烦时 75
6.2.4找到“目标”错误之后 76
第7章 异常与断言 77
7.1处理异常 77
7.2将异常用作控制流 80
7.3断言 82
第8章 类与面向对象编程 83
8.1抽象数据类型与类 83
8.1.1使用抽象数据类型设计程序 87
8.1.2使用类记录学生与教师 87
8.2继承 90
8.2.1多重继承 92
8.2.2替换原则 93
8.3封装与信息隐藏 94
8.4进阶示例:抵押贷款 99
第9章 算法复杂度简介 103
9.1思考计算复杂度 103
9.2渐近表示法 106
9.3一些重要的复杂度 107
9.3.1常数复杂度 107
9.3.2对数复杂度 108
9.3.3线性复杂度 108
9.3.4对数线性复杂度 109
9.3.5多项式复杂度 109
9.3.6指数复杂度 111
9.3.7复杂度对比 112
第10章 一些简单算法和数据结构 114
10.1搜索算法 115
10.1.1线性搜索与间接引用元素 115
10.1.2二分查找和利用假设 116
10.2排序算法 119
10.2.1归并排序 120
10.2.2将函数用作参数 122
10.2.3 Python中的排序 123
10.3散列表 124
第11章 绘图以及类的进一步扩展 128
11.1使用PyLab绘图 128
11.2进阶示例:绘制抵押贷款 133
第12章 背包与图的最优化问题 139
12.1背包问题 139
12.1.1贪婪算法 140
12.1.2 0/1背包问题的最优解 143
12.2图的最优化问题 145
12.2.1一些典型的图论问题 149
12.2.2最短路径:深度优先搜索和广度优先搜索 149
第13章 动态规划 155
13.1又见斐波那契数列 155
13.2动态规划与0/1背包问题 157
13.3动态规划与分治算法 162
第14章 随机游走与数据可视化 163
14.1随机游走 163
14.2醉汉游走 164
14.3有偏随机游走 170
14.4变幻莫测的田地 175
第15章 随机程序、概率与分布 178
15.1随机程序 178
15.2计算简单概率 180
15.3统计推断 180
15.4分布 192
15.4.1概率分布 194
15.4.2正态分布 195
15.4.3连续型和离散型均匀分布 199
15.4.4二项式分布与多项式分布 200
15.4.5指数分布和几何分布 201
15.4.6本福德分布 203
15.5散列与碰撞 204
15.6强队的获胜概率 206
第16章 蒙特卡罗模拟 208
16.1帕斯卡的问题 209
16.2过线还是不过线 210
16.3使用查表法提高性能 213
16.4求π的值 214
16.5模拟模型结束语 218
第17章 抽样与置信区间 220
17.1对波士顿马拉松比赛进行抽样 220
17.2中心极限定理 225
17.3均值的标准误差 228
第18章 理解实验数据 231
18.1弹簧的行为 231
18.2弹丸的行为 238
18.2.1可决系数 240
18.2.2使用计算模型 241
18.3拟合指数分布数据 242
18.4当理论缺失时 245
第19章 随机试验与假设检验 247
19.1检验显著性 248
19.2当心P-值 252
19.3单尾单样本检验 254
19.4是否显著 255
19.5哪个N 257
19.6多重假设 258
第20章 条件概率与贝叶斯统计 261
20.1条件概率 262
20.2贝叶斯定理 263
20.3贝叶斯更新 264
第21章 谎言、该死的谎言与统计学 267
21.1垃圾输入,垃圾输出 267
21.2检验是有缺陷的 268
21.3图形会骗人 268
21.4 Cum Hoc Ergo Propter Hoc 270
21.5统计测量不能说明所有问题 271
21.6抽样偏差 272
21.7上下文很重要 273
21.8慎用外推法 273
21.9得克萨斯神枪手谬误 274
21.10莫名其妙的百分比 276
21.11不显著的显著统计差别 276
21.12回归假象 277
21.13小心为上 278
第22章 机器学习简介 279
22.1特征向量 281
22.2距离度量 283
第23章 聚类 288
23.1 Cluster类 289
23.2 K均值聚类 291
23.3虚构示例 292
23.4更真实的示例 297
第24章 分类方法 303
24.1分类器评价 303
24.2预测跑步者的性别 306
24.3 K最近邻方法 308
24.4基于回归的分类器 312
24.5从“泰坦尼克”号生还 320
24.6总结 325
Python 3.5速查表 326