如果你曾经写过大型的shell script,你大概能了解那种感觉:你想要新增加一个功能,但是这个script已经实在有够大够慢够复杂的了,或者说,你想要加入的新功能需要呼叫系统功能或是其它函数,但是这些功能/函数只有C才能呼叫。你要解决的问题好像并没有严重到要重新用C来写整个程序,或者有些问题因为要用到可变长度的字符串或是特别的数据结构(像是用排序过的文件名称组成序列(list)),用C来写实在比shell麻烦的太多,又或者是你根本不是对C很熟。
另外一个情境是这样的:也许你要使用好几个C的链接库,但是标准开发C程序的过程(写/编译/测试/重新编译)实在太花时间,你需要能快速的开发好软件。又或者你已经些好一个应用程序,这个程序可以使用一个延伸的语言来控制。你不想创造一种语言,然后还得写好这个语言的编译器,还得把这个编译器跟你的程序放在一起。
在这些情况之下,Python也许正是你所需要的语言。Python虽然简单,却是不折不扣的程序语言。对大型的程序来说,它比起shell能提供更多的结构性及支持。另外一方面,它也提供了比C语言更多的错误检查。由于Python是一个非常高阶的语言,所以它有许多内建的数据型态像是有弹性的数组及字典(dictionary)等等,如果用C来做的话得花上你大半天的时间。正是因为Python有较为一般性的数据型态,Python可以应用的范围比起awk甚或是Perl要广的很多,最起码,Python跟这些语言一样容易开发。
Python是一个容易学习又功能强大的程序语言。它含有高效率的高阶数据结构,也是一个简单但是有效果的对象导向程序语言(object-oriented programming)。Python优雅的语法及动态型态识别(dynamictyping),加上直译式(intepretion)的本质,使得它成为一个在多种功能多种平台上撰写脚本(scripts)及快速开发的理想语言。
各种主要平台的Python直译器(interpreter)及延伸的标准链接库(library)都可以在 Python的网站( http://www.python.org )上免费下载及自由流传(包含原始码及二元执行档(binaryform))。 在该网站上也有许多的档案及连结,包括了免费、第三者开发的Python模块、程序及工具, 以及许多的附带文件。
Python的直译器也可以很容易的延伸,可以加入新的由C或是C++(或其它可以由C呼叫的程序语言)所写的函数或是数据型态。Python也很适合用来当作其它应用程序的延伸语言(译者言:比如说用Python来延伸CAD, DBMaker等的功能)。
本教学文件将非正式的介绍给读者Python语言及系统的基本观念及特性。如果读者手边有一个Python的直译器将有助于获得实际的知识,但是本文件的解释都很充足,所以如果单纯离线阅读也是可以的。
若对于标准的对象及模块有兴趣的话,请参阅 Python LibraryReference。 若是要知道正式Python语言的标准定义的话,可参考Python Reference Manual 。 若有兴趣用C或C++写延伸的功能的话,请参考Extending and Embedding the Python Interpreter 以及Python/C API Reference。市面上也有许多更深入探讨Python的书籍。
本教学文件并不试图完整的介绍每一个Python的特性,甚至也不试图介绍每一个常用的功能。 相反的,本文件介绍许多Python值得认识的功能,并且让读者对这个语言的大致风貌有一个了解。 在读完此书之后,读者应该可以开始读及写Python的模块及程序,并且应该可以开始学习各种在 Python LibraryReference所介绍的模块了。