今天继续谈论 Python. 通过这几天的学习,我感到 Python 之所以强大,其简洁的语法和方便的面向对象结构固然是一个原因,但更重要的是它有极其丰富的库函数。

Python 从一开始就是开源的语言,网友共同开发,不属于任何私人公司,可以说出身绝对是根正苗红。可能正是因为这个原因,很多人乐于给 Python 贡献各种库函数。

这就好比 Firefox 一样:我们离不开 Firefox, 这个浏览器本身性能当然也不错,但更重要的是 Firefox 有各种开放的扩展 (Add-ons)。比如我最常用的 Firefox 扩展包括 Greasemonkey, Scrapbook 等等。这些扩展都是由第三方开发,而跟 Firefox 可能一点利益关系也没有。现在 Google 开发了 Chrome, 也可能比 Firefox 性能更好,但我首先问的问题是你 Chrome 也有这么多扩展么?

有了这么多库函数之后,Python 就几乎什么都能干了。在为了过第7关学习 Python 处理图形的过程中,我发现了一个很不错的画图函数库,matplotlib:
http://matplotlib.sourceforge.net/
这个库可以使用 Python 方便地画达到出版标准的数据图!我下载试用了一下,感到其在画图方面基本上可以取代 Matlab 了。

Python 用于科学计算的最重要函数库应该是 NumPy,这个大名鼎鼎我就不必说了。

使用这些库的一个另一个好处是这些库大多是用 C 写的,这就确保了他们的运算速度,而运算速度是 Python 最大的(也可能是惟一的)缺点。

几天前,我说我想不出 Python 对我有什么真正的用处,而现在我想到了很多用处。其实我可以在工作中用 Python 做很多实际事情!

我的 Python Challenge 过了10关,目前在第11关。第8到第10关非常简单,有可能需要时不时搜索一下某些奇怪字符串的意思,但由于在第7关下了功夫学习图形,这时候真正的编程都不需要很多的特别学习了。

过了一关之后可以看到这一关的答案。这些答案里边有时候会提供一些额外有用的信息。我得知了两个重要的网站:

- http://www.amiga-stuff.com/crunchers-id.html
这个网页提供各种文件格式的开头字符。这样如果我们以后看到一个奇怪的文件,也许可以用这个东西查到这是什么文件。不过也许 Linux 下的 file 命令完全可以做同样的事清。

- “数列百科全书”:
http://www.research.att.com/~njas/sequences/index.html
以后再有人考你“已知一个数列的前几项是…,请问他的下一项是什么?” 这种问题,你所要做的就是把那前几项输入这个百科全书查找。它包含所有的著名数列。