内容介绍
本书是面向学过编程、有一定编程经验的计算机专业人员,相关专业的大学生和教师的Python读物,也可作为以Python为第二门编程语言的高校课程教材或参考书。本书全面介绍了Python语言的各方面特征和应用技术,讨论了准确理解和正确使用Python语言所需要了解的深入概念和情况,还介绍了用Python开发较大型或较复杂程序时应该了解的一些高级功能,如程序的模块组织和导入系统,生成器、闭包和装饰器,基本的和高级的面向对象编程机制和技术,以及作为Python*扩展的协程和异步编程等。
作者介绍
裘宗燕,北京大学数学科学学院教授,博士生导师,主要研究领域涉及形式化方法、程序设计语言、新型语言的语义模型和计算机科学教育。著作有《Mathematica数学软件系统的应用和程序设计》《从问题到程序——程序设计与C语言引论》《从问题到程序——用Python学编程和计算》《数据结构与算法:Python语言描述》等,译作有《编程原本》《程序设计实践》《C++语言的设计和演化》《B方法》《程序设计语言——实践之路》等。
目录
- 第 1章 Python基础 1
- 1.1 表达式和计算 1
- 1.1.1 数值计算 1
- 1.1.2 标准函数和数学函数包 5
- 1.1.3 字符串 7
- 1.2 变量和赋值 10
- 1.2.1 名字、变量和赋值 10
- 1.2.2 简单脚本程序 12
- 1.2.3 若干情况 13
- 1.3 逻辑和控制 14
- 1.3.1 条件判断和条件语句 15
- 1.3.2 循环语句 18
- 1.4 定义函数 20
- 1.4.1 计算的抽象:函数 21
- 1.4.2 递归定义的函数 25
- 1.4.3 比较复杂的递归问题 32
- 1.5 函数定义的若干问题 34
- 1.5.1 函数的意义 34
- 1.5.2 函数分解:定义和调用 36
- 1.5.3 程序框架和函数的函数
- 参数 40
- 1.5.4 匿名函数和lambda
- 表达式 44
- 1.5.5 作用域,嵌套的函数定义 48
- 1.5.6 带默认值形参和关键字
- 实参 53
- 1.6 总结和补遗 55
- 1.6.1 整数的位运算 55
- 1.6.2 基本字符集和一些词法
- 规则 56
- 1.6.3 循环语句的else段 57
- 1.6.4 总结 58
- 第 2章 数据的构造和组织 60
- 2.1 表和元组 60
- 2.1.1 表(list) 60
- 2.1.2 表的使用和处理 64
- 2.1.3 元组(tuple) 71
- 2.1.4 有理数程序包 75
- 2.2 序列和序列操作 79
- 2.2.1 序列和序列操作 79
- 2.2.2 描述式 83
- 2.2.3 一些程序实例 86
- 2.2.4 几个序列类型 89
- 2.3 字符串和格式化 91
- 2.3.1 字符串操作 91
- 2.3.2 字符串的格式化 95
- 2.4 文件 99
- 2.4.1 文件和输入/输出 99
- 2.4.2 Python的文件功能 99
- 2.4.3 文件处理程序实例 104
- 2.5 字典(dict) 106
- 2.5.1 概念和操作 107
- 2.5.2 字典的应用实例 109
- 2.5.3 字典与函数参数 111
- 2.6 集合(set和frozenset) 112
- 2.6.1 概念和构造 112
- 2.6.2 集合操作 114
- 2.7 程序和数据 116
- 2.7.1 文本处理 117
- 2.7.2 数据记录和信息管理 122
- 2.7.3 数据持久性 127
- 2.8 总结和补遗 129
- 2.8.1 函数形参和实参 129
- 2.8.2 拆分与组合对象描述 130
- 2.8.3 总结 131
- 第3章 深入理解Python 133
- 3.1 基本语义问题 133
- 3.1.1 变量和对象 133
- 3.1.2 函数和参数的语义 141
- 3.1.3 逻辑判断 144
- 3.1.4 几个问题 149
- 3.2 程序的语义实现 152
- 3.2.1 环境和状态 152
- 3.2.2 程序执行中的环境和
- 状态变化 155
- 3.2.3 函数定义结构和函数
- 调用 159
- 3.2.4 函数的若干问题 160
- 3.3 生成器函数和闭包 163
- 3.3.1 提取文件数据的函数 163
- 3.3.2 生成器函数 166
- 3.3.3 闭包技术和原理 170
- 3.3.4 编程实例 175
- 3.4 异常和异常处理 178
- 3.4.1 运行中的错误 178
- 3.4.2 Python异常处理和try
- 结构 180
- 3.4.3 异常处理的结构和技术 183
- 3.4.4 预定义异常 187
- 3.4.5 异常作为控制机制 189
- 3.5 效率 192
- 3.5.1 基础 192
- 3.5.2 一个例子 198
- 3.5.3 标准组合类型的实现和
- 操作效率 199
- 3.6 总结和补遗 204
- 3.6.1 异常处理机制补遗 204
- 3.6.2 生成器函数进阶 206
- 3.6.3 总结 210
- 第4章 面向对象编程 213
- 4.1 数据抽象、类和自定义类型 213
- 4.2 Python的类和对象 215
- 4.2.1 类的定义和使用 215
- 4.2.2 几个问题 221
- 4.2.3 简单实例 225
- 4.2.4 Python类、对象和方法 229
- 4.3 继承 230
- 4.3.1 继承、基类和派生类 230
- 4.3.2 几个简单实例 237
- 4.3.3 多继承 241
- 4.3.4 异常和类 244
- 4.4 特殊方法名和特殊的类 245
- 4.4.1 容器类和迭代器 246
- 4.4.2 上下文管理 248
- 4.4.3 一些特殊方法名和标准
- 函数 251
- 4.5 实例:链接表 255
- 4.5.1 基本考虑 255
- 4.5.2 简单单链表 257
- 4.5.3 带尾结点指针的单链表 264
- 4.5.4 双链表 266
- 4.5.5 讨论 269
- 4.6 总结和补遗 269
- 4.6.1 对象的定义和使用 269
- 4.6.2 面向对象的技术和
- 方法 273
- 4.6.3 总结 278
- 第5章 Python编程进阶 281
- 5.1 程序和模块 281
- 5.1.1 程序、模块和执行 282
- 5.1.2 导入系统 291
- 5.1.3 模块和程序组织 302
- 5.1.4 动态编译和执行 305
- 5.1.5 Python程序的另一些
- 问题 308
- 5.2 装饰器 310
- 5.2.1 函数装饰器的定义和
- 使用 311
- 5.2.2 函数装饰器实例 316
- 5.2.3 类装饰器 321
- 5.3 面向对象编程进阶 326
- 5.3.1 类的创建及其定制 326
- 5.3.2 属性管理和操作 332
- 5.3.3 描述器 339
- 5.3.4 若干面向对象技术 346
- 5.4 异步程序和协程 351
- 5.4.1 异步和并发 352
- 5.4.2 Python协程 354
- 5.4.3 异步迭代 360
- 5.4.4 异步上下文管理器和
- async with语句 365
- 5.4.5 异步描述式 366
- 5.4.6 示例和讨论 368
- 5.5 总结和补遗 374
- 5.5.1 总结 375
- 5.5.2 编程技术 376
- 附录A Python语言简明手册 377
- A.1 标识符和关键字 377
- A.2 代码结构和解释器 377
- A.3 基本类型和字面量 378
- A.4 组合类型和描述式 378
- A.5 表达式 379
- A.6 语句 381
- 附录B 标准函数 383
- B.1 描述方法说明 383
- B.2 标准函数表 383
- 附录C IDLE开发环境 388
- C.1 调试功能 388
- C.2 菜单命令 390
- C.3 键盘操作 393
- 附录D 本书中使用的标准库包 394
- 推荐阅读书目 395