前言

译者的话

人生苦短,我用Python!

译者一直坚持使用Python3,因为它代表了Python的未来。虽然向后兼容是它的硬伤,但是这个局面迟早会改变的, 而且Python3的未来需要每个人的帮助和支持。 目前市面上的教程书籍,网上的手册大部分基本都是2.x系列的,专门基于3.x系列的书籍少的可怜。

最近看到一本《Python Cookbook》3rd Edition,完全基于Python3,写的也很不错。 为了Python3的普及,我也不自量力,想做点什么事情。于是乎,就有了翻译这本书的冲动了! 这不是一项轻松的工作,却是一件值得做的工作:不仅方便了别人,而且对自己翻译能力也是一种锻炼和提升。

译者会坚持对自己每一句的翻译负责,力求高质量。但受能力限制,也难免有疏漏或者表意不当的地方。 如果译文中有什么错漏的地方请大家见谅,也欢迎大家随时指正: yidao620@gmail.com

作者的话

自从2008年以来,Python3横空出世并慢慢进化。Python3的流行一直被认为需要很长一段时间。 事实上,到我写这本书的2013年,绝大部分的Python程序员仍然在生产环境中使用的是版本2系列, 最主要是因为Python3不向后兼容。毫无疑问,对于工作在遗留代码上的每个程序员来讲,向后兼容是不得不考虑的问题。 但是放眼未来,你就会发现Python3给你带来不一样的惊喜。

正如Python3代表未来一样,新的《Python Cookbook》版本相比较之前的版本有了一个全新的改变。 最重要的是,这个意味着本书是一本非常前沿的参考书。书中所有代码都是在Python3.3版本下面编写和测试的, 并没有考虑之前老版本的兼容性,也没有标注旧版本下的解决方案。这样子可能会有争议, 但是我们最终的目的是写一本完全基于最新最先进工具和语言的书籍。 希望这本书能成为在Python3下编码和想升级之前遗留代码的程序员的优秀教程。

毫无疑问,编写一本这样的书会冒一定的编辑风险。如果在网上搜索Python教程的话,会搜到很多很多。 比如ActiveState’s Python recipes或者Stack Overflow,但是绝大部分都已经是过时的了。 这些教程除了是基于Python2编写之外,可能还有很多解决方案在不同的版本之间是不一样的(比如2.3和2.4版本)。 另外,它们还会经常使用一些过时的技术,这些已经内置到Python3.3里面去了。寻找完全基于Python3的教程真的难上加难啊。

这本书的所有主题都是基于已经存在的代码和技术,而不是专门去寻找Python3特有的教程。 在原有代码基础上,我们完全使用最新的Python技术去改造。 所以,任何想使用最新技术编写代码的程序员,都可以将本书当做一本很好的参考书籍。

在讨论的主题选择方面,我们不可能囊括Python领域所有的东西。 因此,我们优先选择了Python语言核心部分,以及一些在开发中常见的问题和任务。 另外,这里讨论的很多技术都是Python 3最新才出现的,所以如果工作在Python老版本下, 即便是最有经验的程序员可能之前也没见过这些东西。 另外,这些示例程序也会偏向于展示一些有用的编程技术(比如设计模式), 而不是仅仅定位在一些具体的问题上。尽管也提及到了有一些第三方包,但是本书主要定位在Python语言核心和标准库。

这本书适合谁

这本书的目标读者是那些想深入理解Python语言机制和最新编程技能的资深程序员。 很多讨论都是标准库,框架和应用程序使用到的高级技术。 本书所有示例均假设读者已经有了一定的编程背景并且可以很容易的读懂相关主题 (比如基本的计算机科学知识,数据结构知识,算法复杂度,系统编程,并行,C语言编程等)。 另外,每个示例都只是一个入门指导,如果读者想深入研究,需要自己去查阅更多资料。 因此,我们假定读者可以很熟练的使用搜索引擎以及知道怎样查询在线的Python文档。

这本书不适合Python的初学者。事实上,本书已经假定了读者已经有了一定的Python基础,看完过几本入门书籍。 本书也不是那种快速参考手册(可以很快的查询某个模块下的某个函数)。 本书旨在聚焦几个最重要的主题,演示几种可能的解决方案,作为一个跳板, 你可以经此进入一些更高级的主题,这些可以在网上或者参考手册中找到。

本书示例代码

本书几乎所有源代码均可以在 http://github.com/dabeaz/python-cookbook 上面找到。 作者欢迎各位修正bug,改进代码和评论。

本书就是帮助你完成你的工作。一般来讲,只要在本书上面的实例代码, 你都可以随时拿过去在你的源码和文档中使用。你不需要向我们申请许可, 除非你抄袭的太过分了。比如说复制几个代码片段去完成一个程序是不需要许可的, 贩卖或者分发实例代码的光盘也不需要许可,引用本书和实例代码去网上回答一个问题也不需要许可。 但是,合并大量的代码到你的正式产品或文档中去必须得到我们的许可。

我们不会要求你添加代码的出处,包括标题,作者,出版社,ISBN。 比如:Python Cookbook, 3rd edition, by David Beazley and Brian K. Jones (O’Reilly). Copyright 2013 David Beazley and Brian Jones, 978-1-449-34037-7. 但是如果你这么做了,我们会很感激的。

联系我们

请将关于本书的评论和问题发送给出版社:

O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (in the United States or Canada)
707-829-0515 (international or local)
707-829-0104 (fax)

本书网站: http://oreil.ly/python_cookbook_3e ,上面有勘误表,示例和一些其他信息。

如果想要评论或者是问一下本书技术方面的问题, 请发送邮件至: bookquestions@oreilly.com

更多关于我们的书籍,讨论会,新闻, 请访问我们的网站: http://www.oreilly.com

在Facebook上查找我们: http://facebook.com/oreilly

在Twitter上关注我们: http://twitter.com/oreillymedia

在YouTube上观看我们: http://www.youtube.com/oreillymedia

感谢

我们由衷的感谢本书的技术审核者Jake Vanderplas, Robert Kern 和 Andrea Crotti的非常有用的评论和建议, 还有Python社区的帮助和鼓励。我们还想感谢上一个版本的编辑Jake Vanderplas, Robert Kern,and Andrea Crotti。 尽管这个版本是最新的,但是前一个版本已经提供了一个感兴趣主题和解决方案的框架。 最后,最最重要的就是,我们要感谢所有预览版本的读者,他们的评论和改进意见对本书很有帮助。