检讨总结

一) 在上面的故事中,我们看到了解决编程问题的五个方法.

  1. 把问题规范成一个普遍的形式,这样更容易和别人交流以及找相关资料.
  2. 自己尝试找答案.
  3. 在网上搜寻更好的答案.
  4. 想一个方法来打败这个更好的答案.
  5. 翻查教科书或是文献,从基本开始思考有没有最好的解.这些书能被选成教本一定有它的原因.
  6. 研究问题的特殊情况, 也许会有别出心裁的巧妙方法.

二) 故事中每个程式都只有二三十行大小,说明 Python 语言表达力强且语意很浓缩, 做为快速开发或是测算自己的想法都是非常好的.

三) Python 程式浓缩之余,它的语言也异常的清晰.回看上面的程式,你会发现它们全都不难明白.这说明 Python 程式更加容易维护.

四) 在故事中,我们有很大的篇幅是在讨论方法而只有小部份是在描述 Python 的语言特性.这证明 Python 更适合用来教授编程的概念. 事实上, Python 的作者 Guido 和很多人都认为 Python 是电脑教育的首选语言. 教师可以让学生静静地思考,学通运算的法则; 而不是上来就疯狂地敲打键盘,并要记住一大堆电脑语言的古怪特徵.

五) 整个故事围绕於算法的改进而较少碰到 Python 程式的优化问题. 也许在续集中(如果有的话), 我们要尝试一下在固定的算法及尽量少改动程式码的条件下, 提高 Python 程式的效率. 我暂时想到的方法包括:

  1. 利用较新和较快的语法. 如 yield, generator.
  2. 用 Python 的自带优化选项以及内建模组.
  3. 用第三方的扩展模组, 如 Numpy, Scipy.
  4. 用编译方式代替解释, 如 freeze, py2exe.
  5. 用 JIT 类的方法, 如 Psyco.
  6. 用 Thread, 在多 CPU 的机器上平行运算.
  7. 最后一样要大改程式了, 用 C 来做扩展.
  8. 更有 'to hack' 感觉的, 修改 Python 主干程式, 加入像 string.reverse() 这样的辅助函数.

六) 文中所用的测试硬件:

  • CPU: Pentium III 866 RAM: 128 MB
  • 文中所用的测试软件:
    • Slackware Linux: 9.0 Linux Kernel: 2.4.2 GCC: 3.2.2 Python: 修改过的 2.1.3

七) 啃凉馒头对脑筋有帮助.

八) 如果你能想到更好的方法, 欢迎联络本人: glace at chinesepython.org

本文第一次发表在 http://www.dohao.org 技术论坛
2002年许由 glace 整理到中蟒 Wiki 中
2005-3-19 ZoomQuiet 珍藏到 啄木鸟Wiki 中