'''检讨总结''' 一) 在上面的故事中,我们看到了解决编程问题的五个方法. 0. 把问题规范成一个普遍的形式,这样更容易和别人交流以及找相关资料. 1. 自己尝试找答案. 2. 在网上搜寻更好的答案. 3. 想一个方法来打败这个更好的答案. 4. 翻查教科书或是文献,从基本开始思考有没有最好的解.这些书能被选成教本一定有它的原因. 5. 研究问题的特殊情况, 也许会有别出心裁的巧妙方法. 二) 故事中每个程式都只有二三十行大小,说明 Python 语言表达力强且语意很浓缩, 做为快速开发或是测算自己的想法都是非常好的. 三) Python 程式浓缩之余,它的语言也异常的清晰.回看上面的程式,你会发现它们全都不难明白.这说明 Python 程式更加容易维护. 四) 在故事中,我们有很大的篇幅是在讨论方法而只有小部份是在描述 Python 的语言特性.这证明 Python 更适合用来教授编程的概念. 事实上, Python 的作者 Guido 和很多人都认为 Python 是电脑教育的首选语言. 教师可以让学生静静地思考,学通运算的法则; 而不是上来就疯狂地敲打键盘,并要记住一大堆电脑语言的古怪特徵. 五) 整个故事围绕於算法的改进而较少碰到 Python 程式的优化问题. 也许在续集中(如果有的话), 我们要尝试一下在固定的算法及尽量少改动程式码的条件下, 提高 Python 程式的效率. 我暂时想到的方法包括: 0. 利用较新和较快的语法. 如 yield, generator. 1. 用 Python 的自带优化选项以及内建模组. 2. 用第三方的扩展模组, 如 Numpy, Scipy. 3. 用编译方式代替解释, 如 freeze, py2exe. 4. 用 JIT 类的方法, 如 Psyco. 5. 用 Thread, 在多 CPU 的机器上平行运算. 6. 最后一样要大改程式了, 用 C 来做扩展. 7. 更有 '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 中 }}}