Python编程基础教程
作者: (印)H.巴辛(H. Bhasin) 著 李军 译
出版时间: 2020年版
内容简介
本书是Python编程方面的入门教程。全书共20章,通过浅显易懂的语言和丰富实用的示例,介绍了对象、条件语句、循环、函数、迭代器、生成器、文件处理、字符串处理、面向对象范型、类、继承、运算符重载、异常处理、数据结构、栈、队列、链表、二叉搜索树等编程知识,并介绍了NumPy、Matplotlib等库的应用。本书不仅适合Python初学者阅读,也适合高等院校计算机相关专业的学生参考。
目录
第 1章 Python简介\t1
1.1 简介\t1
1.2 Python的特点\t2
1.2.1 容易\t2
1.2.2 输入并运行\t2
1.2.3 语法\t2
1.2.4 混合性\t3
1.2.5 动态类型\t3
1.2.6 内置对象类型\t3
1.2.7 大量的库和工具\t3
1.2.8 可移植性\t3
1.2.9 免费\t3
1.3 编程范型\t3
1.3.1 过程式编程\t3
1.3.2 面向对象编程\t4
1.3.3 函数式编程\t4
1.4 Python的发展历史和应用
前景\t4
1.4.1 发展历史\t4
1.4.2 应用前景\t4
1.5 安装Anaconda\t5
1.6 小结\t9
1.6.1 术语\t9
1.6.2 知识要点\t9
1.7 练习\t10
1.8 理论回顾\t11
第 2章 Python对象\t12
2.1 简介\t12
2.2 基本数据类型\t14
2.2.1 先睹为快\t15
2.2.2 分数和小数\t16
2.3 字符串\t16
2.3.1 分片\t18
2.3.2 字符串的不可变性\t18
2.4 列表和元组\t19
2.4.1 列表\t19
2.4.2 元组\t20
2.4.3 元组的特点\t21
2.5 小结\t21
2.5.1 术语\t22
2.5.2 知识要点\t22
2.6 练习\t22
2.7 编程实践\t24
第3章 条件语句\t25
3.1 简介\t25
3.2 if、if-else和if-elif-else结构\t25
3.3 if-elif-else阶梯判断\t30
3.4 逻辑运算符\t30
3.5 三元运算符\t31
3.6 get结构\t32
3.7 示例\t33
3.8 小结\t36
3.8.1 语法\t36
3.8.2 知识要点\t37
3.9 练习\t37
3.10 编程实践\t39
第4章 循环\t41
4.1 简介\t41
4.2 while\t42
4.3 图案\t44
4.4 嵌套循环及其在列表中的
应用\t48
4.5 小结\t50
4.5.1 术语和语法\t51
4.5.2 知识要点\t51
4.6 练习\t51
4.7 编程实践\t53
第5章 函数\t54
5.1 简介\t54
5.2 函数的特点\t54
5.2.1 模块式编程\t54
5.2.2 代码的可复用性\t54
5.2.3 可管理性\t55
5.3 基本术语\t55
5.3.1 函数的命名\t55
5.3.2 参数\t55
5.3.3 返回值\t55
5.4 定义和调用\t56
5.5 函数的类型\t58
5.6 实现搜索\t59
5.7 作用域\t60
5.8 递归\t62
5.8.1 兔子问题\t62
5.8.2 使用递归的缺点\t64
5.9 小结\t64
5.9.1 术语\t65
5.9.2 知识要点\t65
5.10 练习\t65
5.11 编程实践\t66
5.12 关于递归的问题\t66
5.13 理论回顾\t67
5.14 附加题\t67
第6章 迭代器、生成器和列表解析\t70
6.1 简介\t70
6.2 for的强大功能\t70
6.3 迭代器\t72
6.4 定义一个可迭代的对象\t74
6.5 生成器\t75
6.6 列表解析\t78
6.7 小结\t80
6.7.1 术语和函数\t81
6.7.2 知识要点\t81
6.8 练习\t81
6.9 理论回顾\t82
6.10 编程实践\t82
第7章 文件处理\t84
7.1 简介\t84
7.2 文件操作机制\t85
7.3 open()函数和文件访问模式\t85
7.4 用于文件处理的Python函数\t87
7.4.1 基本函数\t87
7.4.2 与操作系统相关的
方法\t88
7.4.3 其他函数和文件
属性\t88
7.5 命令行参数\t89
7.6 实现和说明\t90
7.7 小结\t94
7.8 练习\t94
7.9 理论回顾\t96
7.10 编程实践\t97
第8章 字符串\t98
8.1 简介\t98
8.2 for和while的用法\t98
8.3 字符串运算符\t100
8.3.1 连接运算符\t100
8.3.2 替换运算符\t101
8.3.3 成员运算符\t101
8.4 处理字符串的函数\t102
8.4.1 len()函数\t102
8.4.2 capitalize()
函数\t103
8.4.3 find()函数\t103
8.4.4 count()函数\t103
8.4.5 endswith()函数\t104
8.4.6 encode()函数\t104
8.4.7 decode()函数\t104
8.4.8 其他函数\t105
8.5 小结\t106
8.5.1 术语\t106
8.5.2 知识要点\t106
8.6 练习\t107
8.7 理论回顾\t108
8.8 编程实践\t109
第9章 面向对象范型简介\t110
9.1 简介\t110
9.2 创建新的类型\t111
9.3 属性和函数\t112
9.3.1 属性\t112
9.3.2 函数\t112
9.4 面向对象编程的要素\t114
9.4.1 类\t115
9.4.2 对象\t115
9.4.3 封装\t115
9.4.4 数据隐藏\t116
9.4.5 继承\t116
9.4.6 多态\t117
9.4.7 可复用性\t117
9.5 小结\t117
9.5.1 术语\t118
9.5.2 知识要点\t118
9.6 练习\t119
9.7 理论回顾\t120
9.8 探索和设计\t120
第 10章 类和对象\t121
10.1 简介\t121
10.2 定义类\t122
10.3 创建对象\t122
10.4 数据成员的作用域\t123
10.5 嵌套\t125
10.6 构造函数\t126
10.7 构造函数重载\t127
10.8 析构函数\t129
10.9 小结\t130
10.9.1 术语\t131
10.9.2 知识要点\t131
10.10 练习\t131
10.11 理论回顾\t133
10.12 编程实践\t133
第 11章 继承\t135
11.1 继承和组合\t135
11.1.1 继承和方法\t136
11.1.2 组合\t138
11.2 继承的重要性及其类型\t141
11.2.1 继承的必要性\t142
11.2.2 继承的类型\t143
11.3 方法\t149
11.3.1 绑定的方法\t149
11.3.2 未绑定的方法\t150
11.3.3 方法是可调用的
对象\t151
11.3.4 超类的重要性和
用法\t152
11.3.5 使用super调用基类
函数\t152
11.4 在继承树中搜索\t153
11.5 类接口和抽象类\t155
11.6 小结\t156
11.6.1 术语\t157
11.6.2 知识要点\t157
11.7 练习\t157
11.8 理论回顾\t159
11.9 编程实践\t159
第 12章 运算符重载\t161
12.1 简介\t161
12.2 回顾__init__\t161
12.3 重载二元运算符的方法\t164
12.4 以分数为例重载二元
运算符\t164
12.5 重载+=运算符\t168
12.6 重载>和<>
12.7 重载__boolEan__运算符——
__bool__与__len__的优先级\t170
12.8 析构函数\t172
12.9 小结\t173
12.9.1 术语\t173
12.9.2 知识要点\t173
12.10 练习\t173
12.11 理论回顾\t174
12.12 编程实践\t175
第 13章 异常处理\t177
13.1 简介\t177
13.2 重要性和机制\t178
13.2.1 try/catch的
例子\t179
13.2.2 手动引发异常\t180
13.3 Python中内置的异常\t180
13.4 过程\t181
13.4.1 异常处理——
try/except\t182
13.4.2 引发异常\t182
13.5 构造用户友好的异常\t183
13.6 异常处理的示例\t184
13.7 小结\t186
13.7.1 语法\t187
13.7.2 知识要点\t187
13.8 练习\t187
13.9 理论回顾\t188
13.10 编程实践\t189
第 14章 数据结构简介\t190
14.1 简介\t190
14.2 抽象数据类型\t192
14.3 算法\t193
14.4 数组\t194
14.5 迭代算法和递归算法\t197
14.5.1 迭代算法\t198
14.5.2 递归算法\t200
14.6 小结\t202
14.6.1 术语\t202
14.6.2 知识要点\t202
14.7 练习\t203
14.8 理论回顾\t204
14.9 编程实践\t204
第 15章 栈和队列\t206
15.1 简介\t206
15.2 栈\t206
15.3 栈的动态实现\t208
15.4 动态实现栈的另一种
方法\t210
15.5 栈的应用\t211
15.5.1 反转一个字符串\t211
15.5.2 中缀表达式、前缀表达式和后缀表达式\t212
15.6 队列\t214
15.7 小结\t216
15.7.1 术语\t216
15.7.2 知识要点\t217
15.8 练习\t217
15.9 理论回顾\t218
15.10 附加题\t218
15.11 编程实践\t219
第 16章 链表\t220
16.1 简介\t220
16.2 操作\t221
16.3 使用链表实现栈\t229
16.4 使用链表实现队列\t231
16.5 小结\t232
16.5.1 术语\t233
16.5.2 知识点\t233
16.6 练习\t233
16.7 理论回顾\t234
16.8 编程实践\t235
16.9 探索和设计\t235
第 17章 二叉搜索树\t236
17.1 简介\t236
17.2 定义和术语\t236
17.2.1 图的定义和表示\t236
17.2.2 树的定义、分类和
表示\t237
17.2.3 二叉树的表示\t239
17.2.4 树的遍历—— 中序、
前序和后序\t240
17.3 二叉搜索树\t241
17.3.1 创建和插入\t242
17.3.2 遍历\t245
17.3.3 最大元素和
最小元素\t246
17.4 小结\t248
17.4.1 术语\t248
17.4.2 知识要点\t249
17.5 练习\t249
17.6 附加题\t250
17.7 编程实践\t251
第 18章 NumPy简介\t252
18.1 简介\t252
18.2 NumPy简介以及基本数组的
创建\t253
18.3 生成序列的函数\t254
18.3.1 arange()\t255
18.3.2 linspace()\t255
18.3.3 logspace()\t256
18.4 聚合函数\t256
18.5 广播\t259
18.6 结构化数组\t262
18.7 小结\t264
18.8 练习\t264
18.9 理论回顾\t266
18.10 编程实践\t266
第 19章 Matplotlib简介\t268
19.1 简介\t268
19.2 绘制函数\t268
19.3 绘制子图\t276
19.4 3D绘图\t280
19.5 小结\t285
19.5.1 术语\t285
19.5.2 知识要点\t286
19.6 练习\t286
19.7 理论回顾\t287
19.8 编程实践\t287
第 20章 图像处理简介\t289
20.1 简介\t289
20.2 打开、读取和写入图像\t290
20.2.1 打开图像\t290
20.2.2 读取图像\t291
20.2.3 把图像写入一个
文件中\t291
20.2.4 显示图像\t291
20.3 contour()函数\t292
20.4 裁剪\t293
20.5 图像的统计信息\t295
20.6 基本变换\t295
20.6.1 平移\t295
20.6.2 旋转\t296
20.6.3 缩放\t297
20.7 小结\t298
20.7.1 术语\t299
20.7.2 知识要点\t299
20.8 练习\t299
20.9 理论回顾\t300
20.10 编程实践\t300
附录A Python中的多线程\t301
附录B 正则表达式\t306
附录C 实践练习和编程问题\t312
附录D 实践练习—— 选择题\t320
附录E 各章选择题答案\t324