新書推薦:
《
如何打造成功的商业赛事
》
售價:HK$
89.5
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:HK$
58.2
《
慈悲与玫瑰
》
售價:HK$
87.4
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:HK$
76.2
《
云中记
》
售價:HK$
76.2
《
大模型应用开发:RAG入门与实战
》
售價:HK$
89.4
《
不挨饿快速瘦的减脂餐
》
售價:HK$
67.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:HK$
110.7
編輯推薦:
如果你在编写Python 3程序时需要帮助,或者想更新老的Python 2代码,本书正是你所需要的。本书包含了大量使用Python 3.3编写并测试过的实用编程技巧。对于那些关注现代工具和惯用技巧的有经验的Python程序员来说,本书无可替代。
本书包含了12个以上的完整主题,其范围涵盖了Python语言的核心以及多个应用领域中的常见任务。每一节中包含的示例代码都可以立刻应用到你自己的项目中去,而每节的讨论部分则告诉你解决方案是如何以及为什么能够工作。
本书主题包括:
数据结构和算法;
字符串和文本;
数字、日期和时间;
迭代器和生成器;
文件和IO;
数据编码与处理;
函数;
类与对象;
元编程;
模块和包;
网络和Web编程;
并发;
实用脚本和系统管理;
测试、调试以及异常;
C语言扩展。
內容簡介:
《Python Cookbook(第3版)中文版》介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字、日期和时间,迭代器和生成器,文件和IO,数据编码与处理,函数,类与对象,元编程,模块和包,网络和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是普林斯顿大学计算机系的一位系统管理员。
目錄 :
目录
第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 处理无穷大和NaN94
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章 文件和IO142
5.1 读写文本数据142
5.2 将输出重定向到文件中145
5.3 以不同的分隔符或行结尾符完成打印145
5.4 读写二进制数据146
5.5 对已不存在的文件执行写入操作149
5.6 在字符串上执行IO操作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 将字典转换为XML192
6.6 解析、修改和重写XML194
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 使用字符串中给定的名称来导入模块