书籍详情
像计算机科学家一样思考Python
作者:(美)Allen B. Downey 著
出版社:人民邮电出版社
出版时间:2013-08-01
ISBN:9787115320926
定价:¥49.00
购买这本书可以去
内容简介
《像计算机科学家一样思考Python》按照培养读者像计算机科学家一样的思维方式的思路来教授Python语言编程。全书贯穿的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供一个具体场景方便介绍的媒介。《像计算机科学家一样思考Python》并不是一本介绍语言的书,而是一本介绍编程思想的书。和其他编程设计语言书籍不同,它不拘泥于语言细节,而是尝试从初学者的角度出发,用生动的示例和丰富的练习来引导读者渐入佳境。作者从最基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。此外,书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法、运行时和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章中所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。可以说这是一种非常有益的创新,让初学编程的读者少走很多弯路。全书共19章和3个附录,详细介绍了Python语言编程的方方面面。《像计算机科学家一样思考Python》是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于第一次接触程序设计的人来说,是一本不可多得的佳作。
作者简介
作者简介Allen Downey是欧林工程学院的计算机科学教授。他从加州大学伯克利分校获得计算机科学博士学位,从MIT获得学士和硕士学位。他曾在韦尔斯利学院、科尔比学院及加州大学伯克利分校教授计算机科学课程。他基于自己教授计算机程序设计课程的经验,开创了“像计算机科学家一样思考”(How to Think Like a Computer Scientist)的教学理念和方法,并藉此编写了多本编程语言书籍。译者简介赵普明是北京秒针信息咨询有限公司的高级工程师,拥有澳大利亚墨尔本大学的软件工程硕士学位和清华大学的计算机科学学士学位。主要从事大数据计算平台和高性能服务器的开发,有5年的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
第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
猜您喜欢