像计算机科学家一样思考Python (第2版)

像计算机科学家一样思考Python (第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

如果想要学习如何编程,从Python语言入手是一个很好的开端。本书从基本的编程概念开始,一步步引导读者了解Python语言,再逐渐掌握函数、递归、数据结构和面向对象设计等高阶概念。本书第2版及其辅助代码均已升级,支持Python 3。

每章后的练习可以帮助读者加深对刚学的编程概念的理解。本书是高中和大学阶段的学生、自学者,以及需要了解编程基础的专业人士的理想读物。初学者可以在浏览器中学习如何开始Python编程。

? 从基础开始,包括语言的语法和语义。

? 掌握每一个编程概念的清晰定义。

? 循序渐进地学习值、变量、语句、函数和数据结构。

? 了解如何操作文件和数据库。

? 理解对象、方法和面向对象编程。

? 使用各种调试技巧来修复语法错误、运行时错误和语义错误。

? 通过一系列案例研究来探索函数、数据结构和算法。

本书的示例代码均在GitHub仓库中维护,读者很容易下载和修改。

内容简介

本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。

全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,带领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。

本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。

这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首次接触程序设计的人来说,是一本不可多得的佳作。

作者简介

Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。

译者介绍

赵普明毕业清华大学计算机系,从事软件开发行业近10年。从2.3版本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但至今仍为Python独特的风格、简洁的设计而惊叹。

章节目录

第1章 程序之道 1

1.1 什么是程序 1

1.2 运行Python 2

1.3 第一个程序 3

1.4 算术操作符 3

1.5 值和类型 4

1.6 形式语言和自然语言 5

1.7 调试 6

1.8 术语表 7

1.9 练习 8

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

2.1 赋值语句 9

2.2 变量名称 9

2.3 表达式和语句 10

2.4 脚本模式 11

2.5 操作顺序 12

2.6 字符串操作 13

2.7 注释 13

2.8 调试 14

2.9 术语表 15

2.10 练习 16

第3章 函数 17

3.1 函数调用 17

3.2 数学函数 18

3.3 组合 19

3.4 添加新函数 19

3.5 定义和使用 21

3.6 执行流程 21

3.7 形参和实参 22

3.8 变量和形参是局部的 23

3.9 栈图 23

3.10 有返回值函数和无返回值函数 24

3.11 为什么要有函数 25

3.12 调试 26

3.13 术语表 26

3.14 练习 27

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

4.1 turtle模块 30

4.2 简单重复 31

4.3 练习 32

4.4 封装 33

4.5 泛化 34

4.6 接口设计 34

4.7 重构 35

4.8 一个开发计划 36

4.9 文档字符串 37

4.10 调试 38

4.11 术语表 38

4.12 练习 39

第5章 条件和递归 41

5.1 向下取整除法操作符和求模操作符 41

5.2 布尔表达式 42

5.3 逻辑操作符 42

5.4 条件执行 43

5.5 选择执行 43

5.6 条件链 44

5.7 嵌套条件 44

5.8 递归 45

5.9 递归函数的栈图 46

5.10 无限递归 47

5.11 键盘输入 47

5.12 调试 48

5.13 术语表 49

5.14 练习 50

第6章 有返回值的函数 53

6.1 返回值 53

6.2 增量开发 54

6.3 组合 56

6.4 布尔函数 57

6.5 再谈递归 58

6.6 坚持信念 59

6.7 另一个示例 60

6.8 检查类型 60

6.9 调试 61

6.10 术语表 63

6.11 练习 63

第7章 迭代 65

7.1 重新赋值 65

7.2 更新变量 66

7.3 while语句 66

7.4 break语句 68

7.5 平方根 68

7.6 算法 70

7.7 调试 70

7.8 术语表 71

7.9 练习 71

第8章 字符串 73

8.1 字符串是一个序列 73

8.2 len 74

8.3 使用for循环进行遍历 74

8.4 字符串切片 75

8.5 字符串是不可变的 76

8.6 搜索 77

8.7 循环和计数 77

8.8 字符串方法 78

8.9 操作符in 79

8.10 字符串比较 79

8.11 调试 80

8.12 术语表 82

8.13 练习 82

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

9.1 读取单词列表 85

9.2 练习 86

9.3 搜索 87

9.4 使用下标循环 88

9.5 调试 90

9.6 术语表 90

9.7 练习 91

第10章 列表 93

10.1 列表是一个序列 93

10.2 列表是可变的 94

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 术语表 104

10.15 练习 105

第11章 字典 108

11.1 字典是一种映射 108

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

11.3 循环和字典 111

11.4 反向查找 111

11.5 字典和列表 112

11.6 备忘 114

11.7 全局变量 115

11.8 调试 117

11.9 术语表 118

11.10 练习 119

第12章 元组 121

12.1 元组是不可变的 121

12.2 元组赋值 122

12.3 作为返回值的元组 123

12.4 可变长参数元组 124

12.5 列表和元组 124

12.6 字典和元组 126

12.7 序列的序列 127

12.8 调试 128

12.9 术语表 129

12.10 练习 129

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

13.1 单词频率分析 132

13.2 随机数 133

13.3 单词直方图 134

13.4 最常用的单词 135

13.5 可选形参 136

13.6 字典减法 137

13.7 随机单词 138

13.8 马尔可夫分析 138

13.9 数据结构 140

13.10 调试 141

13.11 术语表 142

13.12 练习 143

第14章 文件 144

14.1 持久化 144

14.2 读和写 144

14.3 格式操作符 145

14.4 文件名和路径 146

14.5 捕获异常 147

14.6 数据库 148

14.7 封存 149

14.8 管道 150

14.9 编写模块 151

14.10 调试 152

14.11 术语表 152

14.12 练习 153

第15章 类和对象 155

15.1 用户定义类型 155

15.2 属性 156

15.3 矩形 157

15.4 作为返回值的实例 158

15.5 对象是可变的 159

15.6 复制 159

15.7 调试 161

15.8 术语表 161

15.9 练习 162

第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 操作符重载 175

17.8 基于类型的分发 175

17.9 多态 177

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 添加、删除、洗牌和排序 185

18.7 继承 186

18.8 类图 188

18.9 数据封装 189

18.10 调试 190

18.11 术语表 191

18.12 练习 191

第19章 Python拾珍 194

19.1 条件表达式 194

19.2 列表理解 195

19.3 生成器表达式 196

19.4 any和all 197

19.5 集合 197

19.6 计数器 199

19.7 defaultdict 200

19.8 命名元组 201

19.9 收集关键词参数 202

19.10 术语表 203

19.11 练习 203

第20章 调试 205

20.1 语法错误 205

20.2 运行时错误 207

20.2.1 我的程序什么都不做 207

20.2.2 我的程序卡死了 207

20.2.3 无限循环 208

20.2.4 无限递归 208

20.2.5 执行流程 208

20.2.6 当我运行程序,会得到一个异常 209

20.2.7 我添加了太多print语句,被输出淹没了 210

20.3 语义错误 210

20.3.1 我的程序运行不正确 211

20.3.2 我有一个巨大而复杂的表达式,而它和我预料的不同 211

20.3.3 我有一个函数,返回值和预期不同 212

20.3.4 我真的真的卡住了,我需要帮助 212

20.3.5 不行,我真的需要帮助 212

第21章 算法分析 214

21.1 增长量级 215

21.2 Python基本操作的分析 217

21.3 搜索算法的分析 218

21.4 散列表 219

21.5 术语表 223

译后记 224

像计算机科学家一样思考Python (第2版)是2016年由人民邮电出版社出版,作者[美]艾伦B.唐尼。

得书感谢您对《像计算机科学家一样思考Python (第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
机器学习实战 电子书
《机器学习实战》面向日常任务的高效实战内容,介绍并实现机器学习的主流算法。
第一行代码:Android(第3版) 电子书
本书详解Android开发知识,基于Android 10.0、Kotlin编写,适合初学者和进阶开发者。
Python爬虫开发 从入门到实战(微课版) 电子书
基于Python 3.X讲解,从入门到实战,全面讲解Python爬虫技术。全书重点难点附带微课讲解,书网融合互动学习。
Go语言趣学指南 电子书
Go是谷歌公司为了解决重大问题而设计的一种小型编程语言。完成大型项目需要大型团队,而大型团队中团队成员的经验水平往往各不相同。Go是一种小巧却功能强大的语言,它能够被任何人理解和使用,无论其经验如何。 快速、现代的编程语言能让业余爱好者、初学者和专业人员都受益。你需要的正是这样的语言。本书针对Go语言基础知识提供了实操性的指导,使你能够掌握Go语法,使用类型和函数,探索状态和并发等更重要的概念,并通过大量练习来巩固学到的知识。 本书包括以下内容: ●切片、接口、指针和并发等重要语言概念; ●地鼠太空航行、火星探测器、文本加密以及人类繁衍模拟等7个单元实验; ●无须安装即可在Go Playground中运行的示例。 本书面向所有熟悉计算机编程以及渴望获得这一技能的人。
Python 3破冰人工智能:从入门到实战 电子书
数学基础:从历年数学建模竞赛入手,解读人工智能中的数学方法。 编程实践:100余个代码实例,全面讲解网络爬虫、数据存储与数据分析等内容。 算法应用:实战案例辅以丰富图解,详尽分析人工智能算法特性及其应用场景。