内容


可爱的 Python

更新您的 Python 读物列表,第 2 部分

对您冬季读物列表的建议

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 可爱的 Python

敬请期待该系列的后续内容。

此内容是该系列的一部分:可爱的 Python

敬请期待该系列的后续内容。

开始之前

自从九个月前,我的 最近书籍摘要发表以来,又有一些新的 Python 书籍出版了,还有一些我先前没有机会评论的其它书籍送到我的书桌上。我没有机会评论所有希望评论的书,但是在这两个部分中所讨论的每一本书,您都可以考虑购买。

在过去的一年中,更多的书籍将加入 Python 的书架。肯定会有一些书名我没有听说过;但是这里有一些似乎很不错的书。Python 坚定而有才华的 Usenet 评论家 Alex Martelli 已经明确约定为 O'Reilly 编写两本单独的书籍 ― 一本标题为 Python in a Nutshell(看到 Martelli 洋洋洒洒的写作风格“压缩”成紧凑的内容应该很有趣)。Bruce Eckel(他的 Thinking in Java 得到了非常广泛的接受)有一个暂未实现的计划,他打算写 Thinking in Python,时间可能是 2002 年。Christopher Jones 和 Fred Drake 正在为 O'Reilly 编写另一本标题为 Python & XML 的书,这本书看起来有希望。还得提一下,本人正在为 Addison-Wesley 写 Text Processing in Python。2002 年对于 Python 似乎又是一个好年。

有少许最近出版的 Python 书籍我还没有机会看。我没有轻视这些书籍的意思,但是我不能向您作任何推荐。它们是:

  • Core Python Programming ,Wesley J. Chun,Prentice Hall(2000 年 12 月)
  • Sams Teach Yourself Python in 24 Hours ,Ivan Van Laningham,Sams(2000 年 5 月)
  • Python: Developer's Handbook ,Andre dos Santos Lessa, Sams (2000 年 12 月)

总之如果我遗漏了任何书籍,我向它们的作者和出版商道歉。让我知道;我将在以后评论它们。

尽管书籍是大多数主题(包括 Python)入门的一个极好方法,Python 本身也带有一些非常好的文档。研究一下 Python.org(请参阅本文后面的 参考资料)上的 Python 文档以开始您的学习。Python 团队编写了一本优秀的介绍教程,模块索引、库引用和语言引用的质量优于大多数编程语言,或者大体免费的软件所具有的质量。(当我查找某些东西时,“库引用”和“语言引用”之间的区别对我而言总是模糊的;如有疑惑,就尝试两者。)

接触一些旧出发点

六个月以前,我确定留在手边用于编程的 Python 书籍是 David Beazley 的 Python Essential Reference。请您注意,剩下的书籍都在我椅子几步之内,而不必为 Beazley 的书留出位置。最近几个月情况有一点变化 ― 现在我放在手边的书是 Python Essential Reference第 2 版。两个版本之间的主要区别只是从讲述 Python 1.5.2 变成了讲述 Python 2.1。组织和大多数内容仍然保持相同。显然是出于对某些用户抱怨的反应,字体大小稍微放大了些(并且厚度从 318 页增加到 396 页);不幸的是,第 2 版印刷在光泽黯淡得多的纸上 ― 可读性(纯粹从物理角度讲)略有下降。

另一本在前一篇文章提到但是没有评论过的书籍是 Fredrik Lundh 的 Python Standard Library。那时,只有一个受限电子版可用,但是从那以后,O'Reilly 出版了印刷版。 Python Standard Library 很薄 ― 这本书厚 281 页,但是源代码和垂直空白所占据的行数超过文字描述。所有文字合计起来数目也不大。

Python Standard Library 针对的目标(读者)范围很窄且切中要点。其目标是有经验的 Python 程序员,而他手头也有标准模块文档和/或一本更厚的书。本书几乎涵盖了所有 Python 2.0 的标准库模块,但这种涵盖的目的不是记录每个模块中的每个常数、函数和类。而是对每个模块都有极其清晰明了的文字描述,后跟精选的 典型用法示例。

我所看过的许多其他书籍也使用大量源代码示例;但是其中许多,您必须反复阅读并且沉思一会儿才能准确地领会一个示例是用来说明什么的、哪一部分说明了正在论述的主题以及它为什么是一个说明。相反, Python Standard Library 中的源代码示例只是在必要的时候使用、是清晰的、有充足的内部文档并切中说明要点。同样,文字介绍准确地提供了一种清晰的介绍 ― 您可能会向隔壁(如果您足够幸运有这么一个同事的话)的经验丰富得多的程序员寻求的这种介绍。但是,这种描述的目的不是教会您基本概念 ― 它们假设您基本知道要做什么,并只是需要改进如何做。

热身

Learn to Program Using Python: A Tutorial for Hobbyists, Self-Starters, and Those Who Want to Learn the Art of Programming 也许 不是一本针对本专栏大多数读者的书。正如标题所承诺的,Alan Gauld 的书是为希望成为程序员或至少是想了解程序员做什么的非程序员编写的。对这些读者,Gauld 写出了一本令人愉快的书。我新招聘以评论该书的一个非程序员证实了最初几章对初学者而言进度是合适的。

Gauld 所涉及的主题范围很合理,并保持良好的教学顺序。读者应该依次阅读本书的各个部分。本书 很好的索引,但这类书籍不适宜跳跃性地阅读。源代码示例很棒,它们渐进地表示新概念而又保持了清晰和切中要点。虽然许多书籍对侧栏和文本框的使用相当频繁和令人分心,但是 Gauld 通过在每章末尾使用“Things to Ponder”和“Points to Remember”,取得了良好的平衡。总之,这象是一本相当简单 有趣的书,值得一读。

学习剧本

有一类编程书籍,我很难找出其观点。对于学习一种编程语言或技术,样本源代码很重要;但是有一类书主要由源代码组成,文字叙述主要以逐行解释源代码的方式存在。我发现不仅仅大量的源代码是低效的。 Python Standard Library 中源代码占了很大比例 ― 但是源代码是作为叙述的延伸和详细过程存在的;源代码 解释问题而不仅是 被解释。在另一类书中,源代码象死去的东西一样躺在那里,而文字叙述徒劳地试图使它复活。

当前摘要里有两本书是这种“带解说的源代码”类型的。一本是 Python Annotated Archives。这是它的出版商 ― Osborne ― 喜欢出版的大部头书籍之一(720 页)。我真的不能向任何人推荐这本书。有经验的程序员将不能容易地从中找到参考信息,而初学者将因为缺乏背景知识而无法跳读任何特殊脚本。此外,出版一本只是复制每个 Python 分发版(distribution)的 Demo/ 目录中所有脚本的书,象是在 欺骗(这本书版权是完整的,我只是以一种“轻微”的方式表达这个意思)。买这本书,我们将真正得到什么?

许多概念不可避免地出现在 700 页以后。但是并没有特殊的顺序显示它们会出现在哪里。这里有一个任意的示例: _doc_ 字符串的使用是 Python 编程相当重要的一个约定。初学者不会从本书知道这个约定,除非她恰好打开第 162 页找到关于它们的解释 ― 不是因为这一页是讨论文档约定的,而是因为这一页所讨论的脚本恰好有一些 _doc_ 字符串。少数分散在本书中的其它页也提到“by the way, this is a _doc_ string(顺便说一下,这是 _doc_ 字符串)。”有经验的程序员好象不需要这种解释;初学者则未必能找到它。

此外,解释性叙述是随意的(并且经常出错或语无伦次 — 例如,我找不到第一个示例 — prime.py — 的介绍的开头或结尾)。作者 Martin Brown 只是将在头脑中出现的解释写到每个脚本中带有三、四行的一个注解块(在印刷代码时先预留一定空白,再将注释印上去)。但是如果某人不知道一个循环或者一个数值运算是做什么的,注释的位置并不在这个循环或者运算的旁边,而是在本书的“about loops”或“about operations”章节。

Programming with PythonPython Annotated Archives 具有相同的缺点。封面宣称它“由 40 多个完整长度的、带注解的脚本组成”。它实现了自己的承诺;但 Parnassus 的 Vaults 上远不止 40 个完整长度的脚本,涵盖的用途范围也广泛得多。如果您需要一个完成中等复杂用途的 Python 脚本,您最好到因特网上的 Python 存档 ― 比如 Parnassus ― 去查找一个并下载(而且不用买书,少花钱)。

Programming with Python 中,除了脚本本身,还有一点其它东西。脚本有一点解释 ― 但是只有一点。本书开头有一点声明(将内置函数误称为声明)、模块以及一些 Python 语法的简短的总结。(在这方面)Python 教程更好。本书的最后几页是一组关于 Python 的相当好的 FAQ 类型问题。我在 Web 上还从来没有见过任何与它很相似的问题,所提出的问题都很好,并附有准确答案。但那只有 57 页有价值的内容,而且您的特殊问题将只是列表中的一部分。

完整统计表

计算机编程书籍的一种流行类型是致力于成为某种语言或工具的参考大全。我有机会阅读了三本这样的书。

“关于每件事”的 Python 参考大全的首选是 Programming Python的第二版。我已经评论过第一版(请参阅我的 先前摘要),并且我当时所写的大部分内容现在仍然适用。 Programming Python 变得更厚了,有 1255 页,并且现在涵盖 Python 2.0。里面增加了许多新内容,但是使用了相同的构建示例的策略。Mark Lutz 的写作风格依然是清晰和资料丰富的,并且示例也写得很好。 Programming Python 与其说是一本 Python 参考大全,还不如说是一部非常详尽的 Python 课程。它有适当的索引,并且便于查找。但是本书的主旨是引导读者贯穿 Python 编程的各个方面。

针对 Python 的完整参考的第二个选择是一本名称直接叫做 Python: The Complete Reference 的书,作者 Martin Brown。与 Python Annotated Archives 一样,Brown 有分散布置带有描述的短源代码段的习惯(这次在代码左边有一个分散注意力的深灰色栏)。我并非真的喜欢这种风格,但是本书避免了另一本书的大多数错误。 The Complete Reference所涵盖的和 Programming Python 大多相同;都是更多地关于教授 Python(对于在其它语言方面有经验的程序员)而非作为参考大全。但是 The Complete Reference 将它的内容划分到 27 个精选的章,带有详细的目录和良好的索引。也许您不能恰好翻到回答您问题的那一页(象在 Python Essential Reference 里那样),但是至少您可以容易地找到适当的一章来阅读。这本书不到 700 页,阅读本书的 1/27th 以温习一个主题是一种合理的做法。叙述的组织和编写比 Brown 的其它书籍都好。

在“完整参考”类中我最喜欢 Python 2.1 Bible。如果没有其它理由,它在 Python 版本方面比其它书籍都更新。但是甚至除此以外,它是一本具有特殊倾向的更漂亮的书。在 Hungry Minds 的传统中,本书印刷得太“花哨” ― 我注视封面就忍不住感到眩晕,文本中搀杂了太多的图标、表格、装饰标志之类的东西。那就是说,我感到亮色的 sans-serif 标题字体和垂直空白分隔很有吸引力;清晰的 gothic 固定字体使得浏览源代码示例比大多数书籍中的 courier 字体更容易。并且甚至对 10% 页边空白的聪明使用有助于吸引(读者的)眼睛。

除了 Python 2.1 Bible (重要)的物理外表以外,其组织对有一点经验的程序员最有用(最初几章极好地展开了必要的基础概念)。本书分成更多的章(38 个),而且每章都比其它“大”书更注重讲述了最重要的 Python 概念。此外,目录和索引都极其详细而且高质量。而且 Brueck 和 Tanner 的叙述是同类书籍中最好的 ― 实际、准确并且切中要点(Lutz、尤其是 Brown 都有“饶舌”倾向)。


相关主题

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文.
  • 请阅读 developerWorks上 David 的 先前的 Python 书评
  • 要开始学习 Python,请参阅 Python.org 的 Python 文档
  • Python & XML,Christopher A. Jones & Fred L. Drake, Jr.,O'Reilly 2001 (est)。ISBN: 0-596-00128-2.
  • 请访问 Bruce Eckel 的“Thinking in Python”网站
  • Python Essential Reference,Second Edition,David M. Beazley,New Riders 2001。ISBN:0-7357-1091-0。
  • Python Standard Library,Fredrik Lundh,O'Reilly 2001。ISBN:0-596-00096-0。
  • Learn to Program Using Python:A Tutorial for Hobbyists,Self-Starters,and Those Who Want to Learn the Art of Programming,Alan Gauld,Addison-Wesley 2001。ISBN:0-2017-0938-4。
  • Python:Annotated Archives,Martin C. Brown,Osborne/McGraw-Hill 2000。ISBN:0-07-212104-1。
  • Programming With Python,Tim Altom,Premier Press 1999。 ISBN:0-7615-2334-0。
  • Programming Python,Second Edition,Mark Lutz,O'Reilly 2001。 ISBN:0-596-00085-5。
  • Python:The Complete Reference,Martin C. Brown,Osborne/McGraw-Hill 2001。ISBN:0-07-212718-X。
  • Python 2.1 Bible,David Brueck,Stephen Tanner,Hungry Minds 2001。ISBN:0-7645-4807-7。
  • 请浏览 developerWorks更多 Linux 参考资料
  • 请浏览 developerWorks 更多开放源码参考资料

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux
ArticleID=21059
ArticleTitle=可爱的 Python: 更新您的 Python 读物列表,第 2 部分
publish-date=11012001