Python编程双子星:像计算机科学家一样思考Python+Python cookbook 第3三版从入门到精通教程
¥117.80
| 运费: | ¥ 0.00-20.00 |
商品详情
书名:Python编程双子星:像计算机科学家一样思考Python+Python cookbook 第3版中文版
定价:157.0
ISBN:9787115800565
作者:大卫·比斯利 等
版次:*1版
出版时间:2020-01
内容提要:
《像计算机科学家一样思考Python》内容简介 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。 全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引 领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。 本书的第 2版与第 1版相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。 这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首 次接触程序设计的人来说,是一本不可多 得的佳作。 《Python cookbook》内容简介 《Python Cookbook(第3版)中文版》介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字、日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试、调试以及异常,C语言扩展等。 本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中包含了大量实用的编程技巧和示例代码,并在Python 3.3环境下进行了测试,可以很方便地应用到实际项目中去。此外,《Python Cookbook(第3版)中文版》还详细讲解了解决方案是如何工作的,以及为什么能够工作。 《Python Cookbook(第3版)中文版》非常适合具有一定编程基础的Python程序员阅读参考。
作者简介:
David Beazley是一位居住在芝加哥的独立软件开发 者以及图书作者。他主要的工作在于编程工具,提供定制化的软件开发服务,以及为软件开 发者、科学家和工程师教授编程实践课程。他**为人熟知的工作在于Python编程语言,他已为此创建了好几个开源的软件包(例如Swig和PLY),并且是备受赞誉的图书Python Essential Reference的作者。他也对C、C++以及汇编语言下的系统编程有着丰富的经验。 Brain K. Jones是普林斯顿大学计算机系的一位系统管理员。 Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。 译者介绍 赵普明 毕业清华大学计算机系,从事软件开发行业近10年。从2.3版本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但到今仍为Python独特的风格、简洁的设计而惊叹。
目录:
《像计算机科学家一样思考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 cookbook》目录
第 1章 数据结构和算法 1
1.1 将序列分解为单独的变量 1
1.2 从任意长度的可迭代对象中分解元素 3
1.3 保存**后N个元素 5
1.4 找到**大或**小的N个元素 7
1.5 实现优先级队列 9
1.6 在字典中将键映射到多个值上 11
1.7 让字典保持有序 13
1.8 与字典有关的计算问题 14
1.9 在两个字典中寻找相同点 15
1.10 从序列中移除重复项且保持元素间顺序不变 17
1.11 对切片命名 18
1.12 找出序列中出现次数**多的元素 20
1.13 通过公共键对字典列表排序 22
1.14 对不原生支持比较操作的对象排序 23
1.15 根据字段将记录分组 25
1.16 筛选序列中的元素 26
1.17 从字典中提取子集 29
1.18 将名称映射到序列的元素中 30
1.19 同时对数据做转换和换算 33
1.20 将多个映射合并为单个映射 34
第 2章 字符串和文本 37
2.1 针对任意多的分隔符拆分字符串 37
2.2 在字符串的开头或结尾处做文本匹配 38
2.3 利用Shell通配符做字符串匹配 40
2.4 文本模式的匹配和查找 42
2.5 查找和替换文本 45
2.6 以不区分大小写的方式对文本做查找和替换 47
2.7 定义实现**短匹配的正则表达式 48
2.8 编写多行模式的正则表达式 49
2.9 将Unicode文本统一表示为规范形式 50
2.10 用正则表达式处理Unicode字符 52
2.11 从字符串中去掉不需要的字符 53
2.12 文本过滤和清理 54
2.13 对齐文本字符串 57
2.14 字符串连接及合并 59
2.15 给字符串中的变量名做插值处理 62
2.16 以固定的列数重新格式化文本 64
2.17 在文本中处理HTML和XML实体 66
2.18 文本分词 67
2.19 编写一个简单的递归下降解析器 70
2.20 在字节串上执行文本操作 80
第3章 数字、日期和时间 83
3.1 对数值进行取整 83
3.2 执行精 确的小数计算 85
3.3 对数值做格式化输出 87
3.4 同二进制、八进制和十六进制数打交道 89
3.5 从字节串中打包和解包大整数 90
3.6 复数运算 92
3.7 处理无穷大和NaN 94
3.8 分数的计算 96
3.9 处理大型数组的计算 97
3.10 矩阵和线性代数的计算 101
3.11 随机选择 103
3.12 时间换算 105
3.13 计算上周5的日期 107
3.14 找出当月的日期范围 108
3.15 将字符串转换为日期 110
3.16 处理涉及到时区的日期问题 112
第4章 迭代器和生成器 114
4.1 手动访问迭代器中的元素 114
4.2 委托迭代 115
4.3 用生成器创建新的迭代模式 116
4.4 实现迭代协议 118
4.5 反向迭代 121
4.6 定义带有额外状态的生成器函数 122
4.7 对迭代器做切片操作 123
4.8 跳过可迭代对象中的前一部分元素 124
4.9 迭代所有可能的组合或排列 127
4.10 以索引-值对的形式迭代序列 129
4.11 同时迭代多个序列 131
4.12 在不同的容器中进行迭代 133
4.13 创建处理数据的管道 134
4.14 扁平化处理嵌套型的序列 137
4.15 合并多个有序序列,再对整个有序序列进行迭代 139
4.16 用迭代器取代while循环 140
第5章 文件和I/O 142
5.1 读写文本数据 142
5.2 将输出重定向到文件中 145
5.3 以不同的分隔符或行结尾符完成打印 145
5.4 读写二进制数据 146
5.5 对已不存在的文件执行写入操作 149
5.6 在字符串上执行I/O操作 150
5.7 读写压缩的数据文件 151
5.8 对固定大小的记录进行迭代 152
5.9 将二进制数据读取到可变缓冲区中 153
5.10 对二进制文件做内存映射 155
5.11 处理路径名 157
5.12 检测文件是否存在 158
5.13 获取目录内容的列表 159
5.14 绕过文件名编码 161
5.15 打印无法解码的文件名 162
5.16 为已经打开的文件添加或修改编码方式 164
5.17 将字节数据写入文本文件 166
5.18 将已有的文件描述符包装为文件对象 167
5.19 创建临时文件和目录 169
5.20 同串口进行通信 171
5.21 序列化Python对象 172
第6章 数据编码与处理 177
6.1 读写CSV数据 177
6.2 读写JSON数据 181
6.3 解析简单的XML文档 186
6.4 以增量方式解析大型XML文件 188
6.5 将字典转换为XML 192
6.6 解析、修改和重写XML 194
6.7 用命名空间来解析XML文档 196
6.8 同关系型数据库进行交互 198
6.9 编码和解码十六进制数字 201
6.10 Base64编码和解码 202
6.11 读写二进制结构的数组 203
6.12 读取嵌套型和大小可变的二进制结构 207
6.13 数据汇总和统计 218
第7章 函数 221
7.1 编写可接受任意数量参数的函数 221
7.2 编写只接受关键字参数的函数 223
7.3 将元数据信息附加到函数参数上 224
7.4 从函数中返回多个值 225
7.5 定义带有默认参数的函数 226
7.6 定义匿名或内联函数 229
7.7 在匿名函数中绑定变量的值 230
7.8 让带有N个参数的可调用对象以较少的参数形式调用 232
7.9 用函数替代只有单个方法的类 235
7.10 在回调函数中携带额外的状态 236
7.11 内联回调函数 240
7.12 访问定义在闭包内的变量 242
第8章 类与对象 246
8.1 修改实例的字符串表示 246
8.2 自定义字符串的输出格式 248
8.3 让对象支持上下文管理协议 249
8.4 当创建大量实例时如何节省内存 251
8.5 将名称封装到类中 252
8.6 创建可管理的属性 254
8.7 调用父类中的方法 259
8.8 在子类中扩展属性 263
8.9 创建一种新形式的类属性或实例属性 267
8.10 让属性具有惰性求值的能力 271
8.11 简化数据结构的初始化过程 274
8.12 定义一个接口或抽象基类 278
8.13 实现一种数据模型或类型系统 281
8.14 实现自定义的容器 287
8.15 委托属性的访问 291
8.16 在类中定义多个构造函数 296
8.17 不通过调用init来创建实例 298
8.18 用Mixin技术来扩展类定义 299
8.19 实现带有状态的对象或状态机 305
8.20 调用对象上的方法,方法名以字符串形式给出 311
8.21 实现访问者模式 312
8.22 实现非递归的访问者模式 317
8.23 在环状数据结构中管理内存 324
8.24 让类支持比较操作 327
8.25 创建缓存实例 330
第9章 元编程 335
9.1 给函数添加一个包装 335
9.2 编写装饰器时如何保存函数的元数据 337
9.3 对装饰器进行解包装 339
9.4 定义一个可接受参数的装饰器 341
9.5 定义一个属性可由用户修改的装饰器 342
9.6 定义一个能接收可选参数的装饰器 346
9.7 利用装饰器对函数参数强制执行类型检查 348
9.8 在类中定义装饰器 352
9.9 把装饰器定义成类 354
9.10 把装饰器作用到类和静态方法上 357
9.11 编写装饰器为被包装的函数添加参数 359
9.12 利用装饰器给类定义打补丁 362
9.13 利用元类来控制实例的创建 364
9.14 获取类属性的定义顺序 367
9.15 定义一个能接受可选参数的元类 370
9.16 在*args和**kwargs上强制规定一种参数签名 372
9.17 在类中强制规定编码约定 375
9.18 通过编程的方式来定义类 378
9.19 在定义的时候初始化类成员 382
9.20 通过函数注解来实现方法重载 384
9.21 避免出现重复的属性方法 391
9.22 以简单的方式定义上下文管理器 393
9.23 执行带有局部副作用的代码 395
9.24 解析并分析Python源代码 398
9.25 将Python源码分解为字节码 402
第 10章 模块和包 406
10.1 把模块按层次结构组织成包 406
10.2 对所有符号的导入进行精 确控制 407
10.3 用相对名称来导入包中的子模块 408
10.4 将模块分解成多个文件 410
10.5 让各个目录下的代码在统一的命名空间下导入 413
10.6 重新加载模块 415
10.7 让目录或zip文件成为可运行的脚本 416
10.8 读取包中的数据文件 417
10.9 添加目录到sys.path中 418
10.10 使用字符串中给定的名称来导入模块
定价:157.0
ISBN:9787115800565
作者:大卫·比斯利 等
版次:*1版
出版时间:2020-01
内容提要:
《像计算机科学家一样思考Python》内容简介 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。 全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引 领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。 本书的第 2版与第 1版相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。 这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首 次接触程序设计的人来说,是一本不可多 得的佳作。 《Python cookbook》内容简介 《Python Cookbook(第3版)中文版》介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字、日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试、调试以及异常,C语言扩展等。 本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中包含了大量实用的编程技巧和示例代码,并在Python 3.3环境下进行了测试,可以很方便地应用到实际项目中去。此外,《Python Cookbook(第3版)中文版》还详细讲解了解决方案是如何工作的,以及为什么能够工作。 《Python Cookbook(第3版)中文版》非常适合具有一定编程基础的Python程序员阅读参考。
作者简介:
David Beazley是一位居住在芝加哥的独立软件开发 者以及图书作者。他主要的工作在于编程工具,提供定制化的软件开发服务,以及为软件开 发者、科学家和工程师教授编程实践课程。他**为人熟知的工作在于Python编程语言,他已为此创建了好几个开源的软件包(例如Swig和PLY),并且是备受赞誉的图书Python Essential Reference的作者。他也对C、C++以及汇编语言下的系统编程有着丰富的经验。 Brain K. Jones是普林斯顿大学计算机系的一位系统管理员。 Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。 译者介绍 赵普明 毕业清华大学计算机系,从事软件开发行业近10年。从2.3版本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但到今仍为Python独特的风格、简洁的设计而惊叹。
目录:
《像计算机科学家一样思考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 cookbook》目录
第 1章 数据结构和算法 1
1.1 将序列分解为单独的变量 1
1.2 从任意长度的可迭代对象中分解元素 3
1.3 保存**后N个元素 5
1.4 找到**大或**小的N个元素 7
1.5 实现优先级队列 9
1.6 在字典中将键映射到多个值上 11
1.7 让字典保持有序 13
1.8 与字典有关的计算问题 14
1.9 在两个字典中寻找相同点 15
1.10 从序列中移除重复项且保持元素间顺序不变 17
1.11 对切片命名 18
1.12 找出序列中出现次数**多的元素 20
1.13 通过公共键对字典列表排序 22
1.14 对不原生支持比较操作的对象排序 23
1.15 根据字段将记录分组 25
1.16 筛选序列中的元素 26
1.17 从字典中提取子集 29
1.18 将名称映射到序列的元素中 30
1.19 同时对数据做转换和换算 33
1.20 将多个映射合并为单个映射 34
第 2章 字符串和文本 37
2.1 针对任意多的分隔符拆分字符串 37
2.2 在字符串的开头或结尾处做文本匹配 38
2.3 利用Shell通配符做字符串匹配 40
2.4 文本模式的匹配和查找 42
2.5 查找和替换文本 45
2.6 以不区分大小写的方式对文本做查找和替换 47
2.7 定义实现**短匹配的正则表达式 48
2.8 编写多行模式的正则表达式 49
2.9 将Unicode文本统一表示为规范形式 50
2.10 用正则表达式处理Unicode字符 52
2.11 从字符串中去掉不需要的字符 53
2.12 文本过滤和清理 54
2.13 对齐文本字符串 57
2.14 字符串连接及合并 59
2.15 给字符串中的变量名做插值处理 62
2.16 以固定的列数重新格式化文本 64
2.17 在文本中处理HTML和XML实体 66
2.18 文本分词 67
2.19 编写一个简单的递归下降解析器 70
2.20 在字节串上执行文本操作 80
第3章 数字、日期和时间 83
3.1 对数值进行取整 83
3.2 执行精 确的小数计算 85
3.3 对数值做格式化输出 87
3.4 同二进制、八进制和十六进制数打交道 89
3.5 从字节串中打包和解包大整数 90
3.6 复数运算 92
3.7 处理无穷大和NaN 94
3.8 分数的计算 96
3.9 处理大型数组的计算 97
3.10 矩阵和线性代数的计算 101
3.11 随机选择 103
3.12 时间换算 105
3.13 计算上周5的日期 107
3.14 找出当月的日期范围 108
3.15 将字符串转换为日期 110
3.16 处理涉及到时区的日期问题 112
第4章 迭代器和生成器 114
4.1 手动访问迭代器中的元素 114
4.2 委托迭代 115
4.3 用生成器创建新的迭代模式 116
4.4 实现迭代协议 118
4.5 反向迭代 121
4.6 定义带有额外状态的生成器函数 122
4.7 对迭代器做切片操作 123
4.8 跳过可迭代对象中的前一部分元素 124
4.9 迭代所有可能的组合或排列 127
4.10 以索引-值对的形式迭代序列 129
4.11 同时迭代多个序列 131
4.12 在不同的容器中进行迭代 133
4.13 创建处理数据的管道 134
4.14 扁平化处理嵌套型的序列 137
4.15 合并多个有序序列,再对整个有序序列进行迭代 139
4.16 用迭代器取代while循环 140
第5章 文件和I/O 142
5.1 读写文本数据 142
5.2 将输出重定向到文件中 145
5.3 以不同的分隔符或行结尾符完成打印 145
5.4 读写二进制数据 146
5.5 对已不存在的文件执行写入操作 149
5.6 在字符串上执行I/O操作 150
5.7 读写压缩的数据文件 151
5.8 对固定大小的记录进行迭代 152
5.9 将二进制数据读取到可变缓冲区中 153
5.10 对二进制文件做内存映射 155
5.11 处理路径名 157
5.12 检测文件是否存在 158
5.13 获取目录内容的列表 159
5.14 绕过文件名编码 161
5.15 打印无法解码的文件名 162
5.16 为已经打开的文件添加或修改编码方式 164
5.17 将字节数据写入文本文件 166
5.18 将已有的文件描述符包装为文件对象 167
5.19 创建临时文件和目录 169
5.20 同串口进行通信 171
5.21 序列化Python对象 172
第6章 数据编码与处理 177
6.1 读写CSV数据 177
6.2 读写JSON数据 181
6.3 解析简单的XML文档 186
6.4 以增量方式解析大型XML文件 188
6.5 将字典转换为XML 192
6.6 解析、修改和重写XML 194
6.7 用命名空间来解析XML文档 196
6.8 同关系型数据库进行交互 198
6.9 编码和解码十六进制数字 201
6.10 Base64编码和解码 202
6.11 读写二进制结构的数组 203
6.12 读取嵌套型和大小可变的二进制结构 207
6.13 数据汇总和统计 218
第7章 函数 221
7.1 编写可接受任意数量参数的函数 221
7.2 编写只接受关键字参数的函数 223
7.3 将元数据信息附加到函数参数上 224
7.4 从函数中返回多个值 225
7.5 定义带有默认参数的函数 226
7.6 定义匿名或内联函数 229
7.7 在匿名函数中绑定变量的值 230
7.8 让带有N个参数的可调用对象以较少的参数形式调用 232
7.9 用函数替代只有单个方法的类 235
7.10 在回调函数中携带额外的状态 236
7.11 内联回调函数 240
7.12 访问定义在闭包内的变量 242
第8章 类与对象 246
8.1 修改实例的字符串表示 246
8.2 自定义字符串的输出格式 248
8.3 让对象支持上下文管理协议 249
8.4 当创建大量实例时如何节省内存 251
8.5 将名称封装到类中 252
8.6 创建可管理的属性 254
8.7 调用父类中的方法 259
8.8 在子类中扩展属性 263
8.9 创建一种新形式的类属性或实例属性 267
8.10 让属性具有惰性求值的能力 271
8.11 简化数据结构的初始化过程 274
8.12 定义一个接口或抽象基类 278
8.13 实现一种数据模型或类型系统 281
8.14 实现自定义的容器 287
8.15 委托属性的访问 291
8.16 在类中定义多个构造函数 296
8.17 不通过调用init来创建实例 298
8.18 用Mixin技术来扩展类定义 299
8.19 实现带有状态的对象或状态机 305
8.20 调用对象上的方法,方法名以字符串形式给出 311
8.21 实现访问者模式 312
8.22 实现非递归的访问者模式 317
8.23 在环状数据结构中管理内存 324
8.24 让类支持比较操作 327
8.25 创建缓存实例 330
第9章 元编程 335
9.1 给函数添加一个包装 335
9.2 编写装饰器时如何保存函数的元数据 337
9.3 对装饰器进行解包装 339
9.4 定义一个可接受参数的装饰器 341
9.5 定义一个属性可由用户修改的装饰器 342
9.6 定义一个能接收可选参数的装饰器 346
9.7 利用装饰器对函数参数强制执行类型检查 348
9.8 在类中定义装饰器 352
9.9 把装饰器定义成类 354
9.10 把装饰器作用到类和静态方法上 357
9.11 编写装饰器为被包装的函数添加参数 359
9.12 利用装饰器给类定义打补丁 362
9.13 利用元类来控制实例的创建 364
9.14 获取类属性的定义顺序 367
9.15 定义一个能接受可选参数的元类 370
9.16 在*args和**kwargs上强制规定一种参数签名 372
9.17 在类中强制规定编码约定 375
9.18 通过编程的方式来定义类 378
9.19 在定义的时候初始化类成员 382
9.20 通过函数注解来实现方法重载 384
9.21 避免出现重复的属性方法 391
9.22 以简单的方式定义上下文管理器 393
9.23 执行带有局部副作用的代码 395
9.24 解析并分析Python源代码 398
9.25 将Python源码分解为字节码 402
第 10章 模块和包 406
10.1 把模块按层次结构组织成包 406
10.2 对所有符号的导入进行精 确控制 407
10.3 用相对名称来导入包中的子模块 408
10.4 将模块分解成多个文件 410
10.5 让各个目录下的代码在统一的命名空间下导入 413
10.6 重新加载模块 415
10.7 让目录或zip文件成为可运行的脚本 416
10.8 读取包中的数据文件 417
10.9 添加目录到sys.path中 418
10.10 使用字符串中给定的名称来导入模块
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...