看这本书的起因是这个暑假过后要正式入职,有点本领恐慌,所以打算趁着暑假临阵磨枪一下。
说起来用python做主力编程语言已经两年了,但因为平时写的主要是实验,所以基本上是怎么顺手怎么写,只要能跑得起来就行,所以码出来的东西一直挺难看。
看cookbook的主要目地是查缺补漏,了解一下之前没怎么用过的比较高级的东西,以减少重复造轮子。
在我看来,一本好的cookbook应该包括以下内容:
(A1)这个语言方方面面比较深一些的知识和技巧。
(A2)容易被忽略的知识点。特别是那些“不知道也能写得出程序,但是知道了会觉得相见恨晚”的知识。
而不应该包含以下内容:
(B1)入门教程会覆盖的内容,不会就基本不可能写出程序那一类。
(B2)应用面很窄,大多数人都不会碰到的问题。
(B3)问题本身非常清楚、具体,一搜索就能找到,stackoverflow上回答得清清楚楚的问题。
从这几点来考查,我觉得这本书基本达到了以上几个要求。
首先,(A1)全书七百多页,十五章的内容下来,方方面面覆盖得算挺周到。(A2) 我的确学到了很多之前忽略了的知识。
其次,(B1)太过初级的内容这本书里基本没有出现。之前初学python的时候,我看的是Dive into python——一本挺好的python入门书。两本书之间重叠的内容非常少,说明这本cookbook的确如它在前言中声明的定位一样,避免了太过入门性质的内容。
不过,这个评价主要基于书中对python的核心部分的知识点取舍的,对于一些不属于核心的知识(比如说对特定package的知识),本书的对内容的取舍还值得商榷。比如第3章中关于numpy的内容,虽然不会在“两小时python入门”出现,却很显然会被包含在“两小时python数据科学入门”中。事实上,对于原先完全不了解numpy的读者来说,一个简单的numpy介绍,很可能比“问题-解决方案-讨论”这种cookbook格式要好得多。不过限于这本书的cookbook体例,可能也很难有更好的处理办法。
最后,美中不足的,这本书在(B2)和 (B3)两点上还有比较大的改进空间。一个知识点是否属于(B2)(大多数人都用不到的)可能还属于一个见仁见智的问题,但一个知识点是否属于(B3)(问题描述特别具体清楚,一搜索就能找到stackoverflow上的答案)还是有比较客观的标准的。这本书的第九、十等章出现了过多(B3)类型的问题,在我看来不是很有必要。
另外,这本书是针对Python 3写的,对于想要学习的Python 3的读者来说,这是一个额外的好处。不过,本书只讲Python 3,完全不提Python 2和3之间的区别,如果只是单纯想了解Python 2和3的区别,这不是一本合适的书。
我在读这本书的过程中,跳过了第十一、十二、十五章的大部分内容,主要原因是这几部分内容和我的工作关系不太大。并且,我在读第四、八、九章的时候,额外读了几篇关于generator、decorator和descriptor的tutorial来帮助理解,主要原因是我自己的python知识有缺漏。这些都是我个人的因素,和这本书本身的质量关系不大。
以下是分章节的简评。
1. Data structures and algorithms
基础的、通用的小技巧。当然有很多内容是读之前就知道的,但也总有一些是不知道的。基本上每一篇都短小精悍,看起来很快,而且实用性很强,看了之后马上就可以拿来现学现用。
2. Strings and Text
同上一章
3.Numbers, Dates, and Times
前一半的内容很基础和前两章差不多。后面一些内容是针对比较具体的情形的,通用性不那么强。其实这一类的内容就不是很适合cookbook这种体例吧。
比如有几节是关于numpy内容,感觉比较鸡肋。因为只要是用过numpy的肯定都知道,但如果没有用过numpy,只看这几个简单的例子其实也学不会什么。这种情况本来只需要给numpy package一个简单的介绍,让原先不知道的人知道有这么个东西存在、要用到的时候知道去找就可以了。
4.Iterators and generator
很用有的一章。不过如果之前对iterator和generator不是很熟的话(像我),有些地方需要对照着文档或其他教程看。
5. Files and I/O
还不错。有点过于详细,一些边边角角的内容也放在里面了,实际用的机会估计不多。
6. Data Encoding and Processing
讲怎么读写csv,json,xml,binary等等格式的数据。个人觉得意义不是很大,需要的时候直接google就可以方便找到的内容。
7. Functions
还不错。后面几节稍微难烦。
8. Classes and objects
前面几节内容不错。后面一半的内容比较冗长复杂。简单翻了翻,没有仔细看。
9. Metaprogramming
这章其实放在第7、8章之前比较好。因为这章中讲的decorator,如果不太熟的话,第7、8章会看得比较吃力。
10. Modules Packages
比较容易读的一章。后半部分有一些内容针对的问题太具体,用到的机会不是很大 。
11. Network and Web Programming
简单翻了一下,没有读。因为和目前的工作实在关系不大,在未来一段时间内估计也不太会用到。缺乏实际应用的背景,光看书也理解不深。
12. Concurrency
同上一章
13. Utility Scripting and System Administration
挺有意思的一章。内容有点杂乱,但是很多小技巧都挺有趣。
14. Testing, Debugging, and Exceptions
挺好的一章。部分内容有点浅。但全部读下来还是挺有收获的。
15. C Extensions
前一半快速读了一下,后一半只是翻了翻。因为没有工作中还没有用过,比较细节的东西读了也很难领会。
《蟒蛇烹饪大全》:很好的一本菜谱
对“《蟒蛇烹饪大全》:很好的一本菜谱”的回应
《Python Cookbook》热门书评
-
Python奇淫巧计大全
14有用 1无用 冰糖君 2014-08-21
又是一本O'Reilly的好书,这几年看书的经历告诉我O'Reilly的书都值得一看(至少在计算机类的书籍上是这样)。入手一年多(或者两年)了,一直没有来豆瓣标记,现在就标记为已读了。说实话,其实还没完全看完,看过90%+的内容吧,很多内容有重复看过。七八百页也不是小数目,太快看完消化不良,更重要的...
-
很奇怪,怎么这本书没人评价
10有用 1无用 wrongways 2010-12-14
这本书不太适合从头到尾阅读,适合当一本参考书或是字典书,遇到了总是上来查查,看看有没有取巧的办法。书中把一些小技巧按章节集合起来,可以节省不少google的时间。不过因为是多个作者写的,所以感觉在目录分类上似乎做得并不是很好。个人感觉里面介绍的关于字典,列表和set的小技巧还蛮有用的。...
-
Python Cookbook读了一半的感受
9有用 0无用 西皮 2011-02-21
这本书适合有一定Python基础的用户读,主要是一些经验和技巧。我用Python 写代码也有3,4年了,读这本书仍然有很大的收获。比如字符串的处理,还有文本模板的处理,很多技巧之前没有用过。入门用户建议先不要读这本书,不是很系统。 ...
-
《蟒蛇烹饪大全》:很好的一本菜谱
6有用 0无用 舒扬 2015-07-16
看这本书的起因是这个暑假过后要正式入职,有点本领恐慌,所以打算趁着暑假临阵磨枪一下。说起来用python做主力编程语言已经两年了,但因为平时写的主要是实验,所以基本上是怎么顺手怎么写,只要能跑得起来就行,所以码出来的东西一直挺难看。看cookbook的主要目地是查缺补漏,了解一下之前没怎么用过的比较...
-
翻译的太渣~~
2有用 0无用 Eillot 2015-06-25
#pythoncookbook#好好的一部“蟒蛇菜谱“被你们翻译的跟翔一样~还有那么多人看豆评8.0+的分数,幸亏我验证了下~~~强烈建议大家阅读英文原著!其中一处勘误,难道不应该翻译成这样么? 中文版:1.1 每次处理一个字符 我原著理解1.1 不使用临时变量交换的函数...
书名: Python Cookbook
作者:
出版社: 人民邮电出版社
原作名: Python Cookbook
副标题: (第2版)中文版
译者: 高铁军 | Anna Ravenscroft | David Ascher
出版年: 2010-5-1
页数: 756
定价: 99.00元
装帧: 平装
ISBN: 9787115222664