像科学家一样思考python_像计算机科学家一样思考Python

第1章 程序之道 1

1.1 Python编程语言 1

1.2 什么是程序 3

1.3 什么是调试 3

1.4 语法错误 3

1.5 运行时错误 4

1.6 语义错误 4

1.7 实验型调试 4

1.8 形式语言和自然语言 5

1.9 第一个程序 6

1.10 调试 7

1.11 术语表 7

1.12 练习 9

第2章 变量、表达式和语句 10

2.1 值和类型 10

2.2 变量 11

2.3 变量名称和关键字 12

2.4 操作符和操作对象 13

2.5 表达式和语句 13

2.6 交互模式和脚本模式 14

2.7 操作顺序 15

2.8 字符串操作 15

2.9 注释 16

2.10 调试 16

2.11 术语表 17

2.12 练习 18

第3章 函数 19

3.1 函数调用 19

3.2 类型转换函数 19

3.3 数学函数 20

3.4 组合 21

3.5 添加新函数 21

3.6 定义和使用 23

3.7 执行流程 23

3.8 形参和实参 24

3.9 变量和形参是局部的 25

3.10 栈图 25

3.11 有返回值函数和无返回值函数 26

3.12 为什么要有函数 27

3.13 使用from导入模块 28

3.14 调试 28

3.15 术语表 29

3.16 练习 30

第4章 案例研究:接口设计 32

4.1 乌龟世界 32

4.2 简单重复 33

4.3 练习 34

4.4 封装 35

4.5 泛化 36

4.6 接口设计 36

4.7 重构 37

4.8 一个开发计划 38

4.9 文档字符串 39

4.10 调试 39

4.11 术语表 40

4.12 练习 40

第5章 条件和递归 43

5.1 求模操作符 43

5.2 布尔表达式 43

5.3 逻辑操作符 44

5.4 条件执行 44

5.5 选择执行 45

5.6 条件链 45

5.7 嵌套条件 46

5.8 递归 46

5.9 递归函数的栈图 48

5.10 无限递归 48

5.11 键盘输入 49

5.12 调试 50

5.13 术语表 51

5.14 练习 52

第6章 有返回函数 54

6.1 返回值 54

6.2 增量开发 55

6.3 组合 57

6.4 布尔函数 58

6.5 再谈递归 59

6.6 坚持信念 60

6.7 另一个示例 61

6.8 检查类型 61

6.9 调试 63

6.10 术语表 64

6.11 练习 64

第7章 迭代 67

7.1 多重赋值 67

7.2 更新变量 68

7.3 while语句 68

7.4 break语句 70

7.5 平方根 70

7.6 算法 72

7.7 调试 72

7.8 术语表 73

7.9 练习 73

第8章 字符串 75

8.1 字符串是一个序列 75

8.2 len 76

8.3 使用for循环进行遍历 76

8.4 字符串切片 77

8.5 字符串是不可变的 78

8.6 搜索 79

8.7 循环和计数 79

8.8 字符串方法 80

8.9 操作符in 81

8.10 字符串比较 81

8.11 调试 82

8.12 术语表 84

8.13 练习 84

第9章 案例分析:文字游戏 86

9.1 读取单词列表 86

9.2 练习 87

9.3 搜索 88

9.4 使用下标循环 89

9.5 调试 91

9.6 术语表 91

9.7 练习 91

第10章 列表 93

10.1 列表是一个序列 93

10.2 列表是可变的 93

10.3 遍历一个列表 95

10.4 列表操作 95

10.5 列表切片 96

10.6 列表方法 96

10.7 映射、过滤和化简 97

10.8 删除元素 98

10.9 列表和字符串 99

10.10 对象和值 100

10.11 别名 101

10.12 列表参数 102

10.13 调试 103

10.14 术语表 105

10.15 练习 105

第11章 字典 108

11.1 使用字典作为计数器集合 110

11.2 循环和字典 111

11.3 反向查找 111

11.4 字典和列表 113

11.5 备忘 114

11.6 全局变量 116

11.7 长整数 117

11.8 调试 118

11.9 术语表 118

11.10 练习 119

第12章 元组 121

12.1 元组是不可变的 121

12.2 元组赋值 122

12.3 作为返回值的元组 123

12.4 可变长参数元组 123

12.5 列表和元组 124

12.6 字典和元组 125

12.7 比较元组 127

12.8 序列的序列 128

12.9 调试 128

12.10 术语表 129

12.11 练习 130

第13章 案例研究:选择数据结构 132

13.1 单词频率分析 132

13.2 随机数 133

13.3 单词直方图 134

13.4 最常用的单词 135

13.5 可选形参 136

13.6 字典减法 136

13.7 随机单词 137

13.8 马尔可夫分析 138

13.9 数据结构 139

13.10 调试 141

13.11 术语表 142

13.12 练习 142

第14章 文件 143

14.1 持久化 143

14.2 读和写 143

14.3 格式操作符 144

14.4 文件名和路径 145

14.5 捕获异常 146

14.6 数据库 147

14.7 封存 148

14.8 管道 149

14.9 编写模块 150

14.10 调试 151

14.11 术语表 152

14.12 练习 153

第15章 类和对象 154

15.1 用户定义类型 154

15.2 属性 155

15.3 矩形 156

15.4 作为返回值的实例 157

15.5 对象是可变的 158

15.6 复制 158

15.7 调试 160

15.8 术语表 160

15.9 练习 161

第16章 类和函数 163

16.1 时间 163

16.2 纯函数 164

16.3 修改器 165

16.4 原型和计划 166

16.5 调试 167

16.6 术语表 168

16.7 练习 168

第17章 类和方法 170

17.1 面向对象特性 170

17.2 打印对象 171

17.3 另一个示例 172

17.4 一个更复杂的示例 173

17.5 init方法 173

17.6 str方法 174

17.7 操作符重载 174

17.8 基于类型的分发 175

17.9 多态 176

17.10 调试 177

17.11 接口和实现 178

17.12 术语表 179

17.13 练习 179

第18章 继承 181

18.1 卡片对象 181

18.2 类属性 182

18.3 对比卡牌 183

18.4 牌组 184

18.5 打印牌组 185

18.6 添加、删除、洗牌和排序 186

18.7 继承 186

18.8 类图 188

18.9 调试 189

18.10 数据封装 190

18.11 术语表 191

18.12 练习 192

第19章 案例研究:Tkinter 195

19.1 GUI 195

19.2 按钮和回调 196

19.3 画布部件 197

19.4 坐标序列 198

19.5 更多部件 198

19.6 包装部件 200

19.7 菜单与Callable 202

19.8 绑定 203

19.9 调试 205

19.10 术语表 206

19.11 练习 206

附录A 调试 209

附录B 算法分析 217

附录C Lumpy 227

译后记 236

你可能感兴趣的:(像科学家一样思考python)