本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。
全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。
本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。
这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首次接触程序设计的人来说,是一本不可多得的佳作。
第1章程序之道1
1.1什么是程序1
1.2运行Python2
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.1turtle模块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.3while语句66
7.4break语句68
7.5平方根68
7.6算法70
7.7调试70
7.8术语表71
7.9练习71
第8章字符串73
8.1字符串是一个序列73
8.2len74
8.3使用for循环进行遍历74
8.4字符串切片75
8.5字符串是不可变的76
8.6搜索77
8.7循环和计数77
8.8字符串方法78
8.9操作符in79
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马
Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。
译者介绍
赵普明毕业清华大学计算机系,从事软件开发行业近10年。从2.3版本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但至今仍为Python独特的风格、简洁的设计而惊叹。