Python Cookbook 第二版 汉化版 [00-2-Preface] Part 2

news/2024/7/5 23:49:43

0.5 Organization
0.5 本书的组织

本书共 20 章。每一章专门讨论某一类型的 recipe ,比如算法、文本处理、数据库等。本书第一版仅 17 章。自第一版以来,Python 在语言设施和程序库两方面有了进步,Python 社区也在 cookbook 网站上新贴了大量的 recipes ;这一切事实说服我们在第二版中追加了三个全新的章节,分别涵盖 Python 2.3 引入的 iterators 和 generators、Python 对新/旧的时间和金融计算操作的支持,以及自 Python 2.2 以来所引入的新的高级工具(定制的 descriptors,decorators,metaclasses)。全书每个章节以一篇介绍导言开头,分别由领域内的专家撰写,之后的内容就是选自在线 cookbook 的 recipes(其中有 5% 的 recipes 是特地为本书而编写的),这些 recipes 经过编辑,以符合本书的格式和风格要求。Alex(在 Anna 的帮助下)进行了大部分选材工作——决定从第一版保留和更新哪些条目,选取新的条目进行追加,或者将条目进行合并。网站上近千条 recipes 都是候选者(所以若你在 cookbook 网站上发表的 recipe 没有出现在本书当中的话,那就是 Alex 的错儿!)。Alex 还负责定夺本书需要涵盖哪些方面的内容,故有可能需要专门撰写的 recipes——尽管他并不能找到所有他想要的条目。若本书内容存在缺失,或者有不在 cookbook 网站上的内容,那可能就不完全是 Alex 的错儿了。

选取工作完成之后,就要开始对 recipes 条目进行编辑加工,合并多个条目,或者将条目的本体内容与其相关的评注进行融合。这些工作都是不小的挑战,与编辑第一版时相比,有过之而无不及。Recipes 在组织、完备程度、复杂性等方面有着显著差异。全书的条目涉及到了 300 多位作者,300 多种“声音”被加进了本书。本书由整个 Python 社区编写,因此我们力图保持各异的风格,以便体现本书的真实风采。然而,我也对每一条 recipe 进行编辑(有时候编辑幅度较大),以保证条目能够尽可能易读和有用;我们保证全书条目在结构和呈现形式上的一致性,以便从整体上将全书的可用性最大化。无论是来自第一版的,还是来自网站上新增的 recipes ,我们对其中许多条目进行了(有时是大幅度的)更新,以便体现这些 recipes 自发表以来所出现的新工具或者新方法。我们还仔细重新考量并略微变动了章节的顺序,以及每章之内条目的位置和顺序;重新理序的目标是:同时为 Python 新手和老手提供最大限度的可用性,既是为“按部就班顺序阅读”的读者准备的,也是为“寻找特定主题,以‘随机浏览’方式进行跳跃式阅读”的读者准备的。

诚然,完全可以用“跳跃式”的方式来阅读本书;然而我们也还是认为,在首次采用顺序通读的方式阅读本书,您(作为读者)的时间投入将会得到富足的回报。首次通读时,您不妨跳过所有存疑或暂时不感兴趣的条目。即使跳过了书中的部分内容,您仍然会对全书及其特定主体的涵盖情况有所了解;如此一来,将为您后续的深入阅读(无论是以顺序阅读方式还是“随机浏览”方式进行)打下好的基础。为了助您了解本书内容的布局,下面给出了每章内容的小结,一并还给出了慷慨献出墨宝为每章撰写“介绍导言”部分的 Python 专家之个人信息。

第 1 章,介绍导言由 Fred L. Drake, Jr. 撰写。

本章包含的 recipes 涉及以各种方式操纵文本,包括组合、过滤字符串、对字符串进行格式化、在文本文档中替换变量,以及处理 Unicode 等。

Fred Drake 是 PythonLabs group 的成员之一,从事 Python 开发工作。Fred 是三个孩子的父亲,在 Python 社区中以维护官方文档而闻名。Fred 还是 Python & XML(O'Reilly)一书的合著者。

第 2 章,介绍导言由 Mark Lutz 撰写。

本章阐述文件中的数据处理,以及操纵文件系统中的文件和目录,包括诸如 tar 和 zip 等特定的文件和存档格式。

Mark Lutz 以最多产的 Python 图书作家而著称于 Python 用户群,他的作品(皆由 O'Reilly 出版)包括 Programming Python、Python Pocket Reference,以及与 David Ascher 合著的 Learning Python 。Mark 还是业内领先的 Python 培训师,在全世界传播 Python 福音。

第 3 章,介绍导言由 Gustavo Niemeyer 和 Facundo Batista 撰写。

本章是第二版的新增内容,展示了处理日期、时间、十进制数以及其他金融计算相关的工具和技术。

Gustavo Niemeyer 是第三方模块 dateutil 以及多种其他 Python 扩展包和项目的作者。Gustavo 住在巴西。Facundo Batista 是 Decimal PEP 327 的作者,也是标准库 decimal 模块(其为 Python 2.4 提供了浮点十进制计算的支持)的作者,他住在阿根廷。本书编辑非常高兴能够请到他们二位来撰写本章的介绍导言。

第 4 章,介绍导言由 David Ascher 撰写。

本章包含许多通用技巧的 recipes ,以及不便作特定归类的 recipes。

David Ascher 是本书编辑之一。David 的专业背景包括物理、视觉研究、科学计算可视化、计算机图形学、多种编程语言,他是 Learning Python(O'Reilly)的合著者,还教授 Python 语言,近期还承担了一连串技术/非技术的任务,比如管理 ActiveState 团队等。David 还定期组织 Python 研讨会。

第 5 章,介绍导言由 Tim Peters 撰写。

本章涵盖 Python 的搜索和排序技巧。其中许多 recipes 结合 decorate-sort-undercorate(DSU)惯用法(此为 Python 2.4 中新增用途),探索稳定、快速的 list.sort 之创新性用法;还有一些 recipes 展示 heapq, bisect 以及其他 Python 搜索和排序工具。

Tim Peters(以 tim-bot 之名著称),乃 Python 世界之奇幻人物。他犹如圣贤,在 Guido van Rossum 深陷苦海之时为他引路;在别人提到稍微相关的内容时,领引了 IEEE-754 floating-point 委员会;他在 Python 语言被拔苗助长地推演时,坚持了原则。Tim 是 PythonLabs 团队的成员。

第 6 章,介绍导言由 Alex Martelli 撰写。

本章提供了涉猎广泛的 recipes ,以展示 Python 面向对象编程的威力,包括诸如“通过特殊 methods 来委托和控制 attribute 访问”之类的基本技巧,诸如“实现各种设计模式”之类的中级技巧,以及一些简单但受用的高级概念之应用,比如 custom metaclasses(第 20 章深入阐述此议)。

Alex Martelli(以 martelli-bot 之名而著称)是本书编辑之一。他在 IBM Research 工作了近十年,后又在 think3, inc. 工作了十数年,目前以自由顾问为业,近期为瑞典一家主营 Python 开发的公司担当顾问。Alex 编辑并撰写 Python 文章和图书(作品包括 O'Reilly 的 Python in a Nutshell),偶尔还做些合约桥牌游戏的研究。

第 7 章,介绍导言由 Aaron Watters 撰写。

本章展现用于持久化(persistence)的 Python 技巧,包括序列化(serialization)方案以及与多种数据库的交互。

Aaron Watters 是最早的 Python 倡导者之一,还是数据库专家。他还是第一本 Python 图书(M&T Books 出版的 Internet Programming with Python,现已绝版)的第一作者,他撰写了许多广为使用的 Python 扩展包,如 kjBuckets 和 kwParsing 等。Aaron 目前作自由顾问。

第 8 章,介绍导言由 Mark Hammond 撰写。

本章包含用于调试和测试过程的 recipes ,涵盖内容从定制 error logging 以及 traceback 信息,到利用定制模块 unittest 和 doctest 进行单元测试等。

Mark Hammond 以他在 Python 对 Windows 平台支持方面的工作而著称。他与 Greg Stein 一起创建了一个非凡的程序库,其中的模块能让 Python 与广泛的 API、程序库以及诸如 COM 这样的组件模型进行接口。Mark 还是设计和构建开发工具的专家(著名作品包括 Pythonwin 和 Komodo)。最后,Mark 还是调试专家,再乱的系统也能被他调教——比如在 Komodo 开发过程中,他经常应邀解决各种难题,比如涉及三种语言(Python / C++ / JavaScript)的调试、多线程/多进程调试等。Mark 还与 Andy Robinson 一起合著了 O'Reilly 的 Python Programming on Win32 一书。

第 9 章,介绍导言由 Greg Wilson 撰写。

本章包含并发程序设计的诸多技巧,涉及线程、队列以及多进程等内容。

Greg Wilson 编写儿童书籍,以及关于并行程序设计和高速数据处理的图书。除此之外,他还是 Doctor Dobb's Journal 的协力编辑、University of Toronto 的 Computer Science 部门的助理教授、自由软件开发者。Greg 是 Software Carpentry 项目的发动者,他最近得到 Python Software Foundation 的许可,为数值计算科学家和工程师提供 Python 及惯用技法(Pythonic *)的课程素材。

* 译注:“Pythonic”为 Python 社区使用的专门字,详细敬请参考相关网络资源。

第 10 章,介绍导言由 Donn Cave 撰写。

本章包含几个常见系统管理任务的 recipes ,包括生成密码、与 Windows 注册表进行交互,以至处理邮箱以及 web 服务器事宜。

Donn Cave 是 University of Washington 中心计算站点的软件工程师。多年来,Donn 一直被公认为是 comp.lang.python 上的“墨水肚”,涉猎系统调用、Unix、系统管理、文件、信号等领域。
 





http://www.niftyadmin.cn/n/3651732.html

相关文章

删除有序数组中的重复项 leetcode java篇

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分…

懒人的Python技巧#20060706

很多工作经常是在同时打开了N个窗口,搞不好还开着Photoshop和/或Illustrator的情况下进行。如此负荷,再快的电脑也照给“沙漏”。然而即使是在这样的情形之下,还经常会遇到“希望把Word文档转为文本文件”的需求——这大约是Word的滥用和优秀…

移除元素 leetcode java篇

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…

懒人的Python技巧#20060708

National Geographic 的网站上有一个 Photo of the Day (POTD)栏目:http://lava.nationalgeographic.com/pod/ (当天的墙纸)http://lava.nationalgeographic.com/cgi-bin/pod/archive.cgi (以前的墙纸Archi…

Python Cookbook 第二版 汉化版 [00-1-Info]

Python Cookbook 第二版 汉化版David Ascher, Alex Martelli, Anna Ravenscroft 著出版社: OReilly出版日期: March 2005ISBN: 0-596-00797-3页码数目: 844 页同本书第一版一样,第二版汇集了 Python 程序员遇到的常见问题的解决办法。第二版针对 Python 2.4 做了相应…

搜索插入位置 leetcode java篇

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 p.s. 用移位操作符时一定要打括号,不然优先级太后面了,会导致死循环…

最大子数组和 leetcode java篇

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 class Solution {public int maxSubArray(int[] ns) {int max ns[0];int pre 0;for(in…

考试的最大困扰度 leetcode java篇

一位老师正在出一场由 n 道判断题构成的考试,每道题的答案为 true (用 T 表示)或者 false (用 F 表示)。老师想增加学生对自己做出答案的不确定性,方法是 最大化 有 连续相同 结果的题数。(也就…