《Python基础教程》看了三遍。第一遍囫囵吞枣、尝试写代码;第二遍重温,同步看《Python学习手册》、《Python Cookbook》,部分细节(如正则表达式)对照另两本书一起看,敲代码;第三遍仔细看了一遍,花了一个多月时间,每天晚上1~2个小时,收获很大。
本书优点:简洁的讲了基本的内容后,提供10个编程例子练手。可分三部分:
第一部分:基础,包括:基本语法—>抽象(函数,类)—>异常—>迭代–>标准库(包括正则表达式)。这些内容在《Python学习手册》中讲的非常详细,看起来会累;本书轻松一些。
第二部分:和外界打交道,包括:文件、图形界面、数据库、网络编程,知识点对应后面10个例子。又讲到如何测试、打包、发布程序。讲的较为简单,可以在用到某个功能时再找资料。
第三部分:实践。 20~29章,每章一个编程例子。学好Python语法,有了疑问:Python可以用来做什么?都说它很强大,强大在哪里?耐心琢磨、读懂10个例子后,对这两个问题有了感觉。
这10个例子涉足:文本处理、利用图形创建PDF文件、XML生成网站、聊天工具(网络)、CGI技术、基于Web的论坛(CGI、数据库)、XML-RPC、GUI。例子虽然不是最新技术,但告诉了应用方向。第10个例子,看题目“DIY街机游戏”,就觉得很神奇,怎么开发一个像模像样的游戏?按照它的方法做一遍,也不是那么难。
每个例子的组织很好:问题是什么–>有用的工具—>准备工作—>初次实现—>再次实现—>进一步探索。学好语法之后,我能笨拙、费力的用初次实现的方法,硬编码解决问题。而再次实现“如何将一个没有任何形式抽象(没有函数、类)的简单原型改进为一个增加了数个重要抽象特征的泛型系统”。再次实现的思路、设计很好,光学语法真的没法写出来,虽然有些例子的内容可能有点老,但思路值得学习。
本书有意思的细节
第1章:脚本的第一行:#!/usr/bin/env python,一直不知所以然。它叫“pound bang”或者“shebang”。作用是像运行其他程序(比如浏览器、文本编辑器)一样运行Python程序,而不需要显示使用Python解释器。
第11章:包的概念,“为了将Python将其作为包对待,它必须包含一个命名为__init__.py的文件”。明白了我在写robotframework库的时候,每个库都包含一个__init__.py文件的原因。
第18章,怎么用Python编写安装脚本,明白了安装的第三方库是怎么来的,为什么要输入“python setup.py”进行安装。
另外,一些箴言也不错。“查看源代码(“使用源代码”,记得吗),可以了解程序的工作机制”(P436);“要记得Python的学习箴言:使用源代码(就是说要阅读能得到的所有代码)”。(P450)—-计划开始读工作中用到的第三方库的代码。“如果读者能够掌握本章的某些概念,那么你的Python编程水平就会有很大程度的提高。使用手头上的标准库可以让Python变的无比强大”(P206)—-需要好好学习应用《Python标准库》。
本书的瑕疵
有些地方讲的简单、晦涩,要费力才能理解,有几处费力了还是没有理解,但所幸这样的地方不多。瑕不掩瑜。
八皇后问题真的很难理解,第三遍基本能够明白了,第一次时真是云里雾里。
正则表达式的sub函数,也是对照了其他资料才明白的。P326“re.sub函数可以将一个函数作为第二个参数(替换式)。函数会被匹配的对象调用,并且它的返回值会被插入到文本中”。我认为“函数会被匹配的对象调用”应该是“函数会接受被匹配的对象作为参数”,这样才对。
其他大概还有3、4个看不懂的小点。
Ps.开始在工作中应用python,尝试到了它的好处。