又是一本O'Reilly的好书《Python Cookbook》第三版最佳译本

2023-10-14 17:50

本文主要是介绍又是一本O'Reilly的好书《Python Cookbook》第三版最佳译本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前看到的最好的《Python Cookbook》译本

下载地址......

公众号回复关键字 11761直接获取下载链接
  1. 点击 https://51dr.cn/Book/Detail/11761 原文链接访问

  2. 公众号回复 “11761” 获取下载地址,
    关注公众号资源分享,视频教程应有尽有!欢迎关注一起学习!

4624570-d5e95760e6ff2b9d.png
扫码关注公众号

简介......

来自yidao620c等人的翻译,该项目的GitHub:
https://github.com/yidao620c/python3-cookbook

翻译的比官方中文版准确得多,这里就不举例了。

Luciano Ramalho在《流畅的Python》中不止一次提及David Beazley的《Python Cookbook》,示例代码整理的也很好,这两本配合看绝佳。这两本书提倡使用Python自带的库处理问题,最近也在看LeetCode,觉得面试也应该多考考内置库用的是否熟练。

4624570-de4249db1b58ba2a
image

内容简介 · · · · · ·

《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是普林斯顿大学计算机系的一位系统管理员。

目录 · · · · · ·

目录
第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 使用字符串中给定的名称来导入模块 420
10.11 利用import钩子从远端机器上加载模块 421
10.12 在模块加载时为其打补丁 439
10.13 安装只为自己所用的包 441
10.14 创建新的Python环境 442
10.15 发布自定义的包 444
第11章 网络和Web编程 446
11.1 以客户端的形式同HTTP服务交互 446
11.2 创建一个TCP服务器 450
11.3 创建一个UDP服务器 454
11.4 从CIDR地址中生成IP地址的范围 456
11.5 创建基于REST风格的简单接口 458
11.6 利用XML-RPC实现简单的远端过程调用 463
11.7 在不同的解释器间进行通信 466
11.8 实现远端过程调用 468
11.9 以简单的方式验证客户端身份 472
11.10 为网络服务增加SSL支持 474
11.11 在进程间传递socket文件描述符 481
11.12 理解事件驱动型I/O 486
11.13 发送和接收大型数组 493
第12章 并发 496
12.1 启动和停止线程 496
12.2 判断线程是否已经启动 499
12.3 线程间通信 503
12.4 对临界区加锁 508
12.5 避免死锁 511
12.6 保存线程专有状态 515
12.7 创建线程池 517
12.8 实现简单的并行编程 521
12.9 如何规避GIL带来的限制 525
12.10 定义一个Actor任务 528
12.11 实现发布者/订阅者消息模式 532
12.12 使用生成器作为线程的替代方案 536
12.13 轮询多个线程队列 544
12.14 在UNIX上加载守护进程 547
第13章 实用脚本和系统管理 552
13.1 通过重定向、管道或输入文件来作为脚本的输入 552
13.2 终止程序并显示错误信息 553
13.3 解析命令行选项 554
13.4 在运行时提供密码输入提示 557
13.5 获取终端大小 558
13.6 执行外部命令并获取输出 558
13.7 拷贝或移动文件和目录 560
13.8 创建和解包归档文件 562
13.9 通过名称来查找文件 563
13.10 读取配置文件 565
13.11 给脚本添加日志记录 568
13.12 给库添加日志记录 571
13.13 创建一个秒表计时器 573
13.14 给内存和CPU使用量设定限制 575
13.15 加载Web浏览器 576
第14章 测试、调试以及异常 578
14.1 测试发送到stdout上的输出 578
14.2 在单元测试中为对象打补丁 579
14.3 在单元测试中检测异常情况 583
14.4 将测试结果作为日志记录到文件中 585
14.5 跳过测试,或者预计测试结果为失败 586
14.6 处理多个异常 587
14.7 捕获所有的异常 589
14.8 创建自定义的异常 591
14.9 通过引发异常来响应另一个异常 593
14.10 重新抛出上一个异常 595
14.11 发出告警信息 596
14.12 对基本的程序崩溃问题进行调试 598
14.13 对程序做性能分析以及计时统计 600
14.14 让你的程序运行得更快 603
第15章 C语言扩展 610
15.1 利用ctypes来访问C代码 612
15.2 编写简单的C语言扩展模块 618
15.3 编写一个可操作数组的扩展函数 622
15.4 在C扩展模块中管理不透明指针 625
15.5 在扩展模块中定义并导出C API 628
15.6 从C中调用Python 633
15.7 在C扩展模块中释放GIL 639
15.8 混合使用C和Python环境中的线程 639
15.9 用Swig来包装C代码 640
15.10 用Cython来包装C代码 646
15.11 用Cython来高效操作数组 652
15.12 把函数指针转换为可调用对象 657
15.13 把以NULL结尾的字符串传给C库 659
15.14 把Unicode字符串传递给C库 663
15.15 把C字符串转换到Python中 667
15.16 同编码方式不确定的C字符串打交道 669
15.17 把文件名传给C扩展模块 672
15.18 把打开的文件传给C扩展模块 673
15.19 在C中读取文件型对象 674
15.20 从C中访问可迭代对象 677
15.21 排查段错误 678
附录A 补充阅读 680

这篇关于又是一本O'Reilly的好书《Python Cookbook》第三版最佳译本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/212159

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数