如果你写过大规模的 Shell 脚本,应该会有过这样的体会:你还非常想再加一些别的功能进去,但它已经太大、太慢、太复杂了;或者这个功能需要调用一个系统函数,或者它只适合通过 C 来调用 ...通常这些问题还不足以严肃到需要用 C 重写这个脚本;可能这个功能需要一些类似变长字符串或其它一些在 Shell 脚本中很容易找到的数据类型(比如文件名的有序列表),但它们用 C 来实现就要做大量的工作,或者,你对 C 还不是很熟悉。
另一种情况:可能你需要使用几个 C 库来工作,通常 C 的编写/编译/测试/重编译周期太慢。你需要尽快的开发软件。也许你需要写一个使用扩展语言的程序,但不想设计一个语言,并为此编写调试一个解释器,然后再把它集成进你的程序。
遇到以上情况,Python 可能就是你要找的语言。Python 很容易上手,但它是一门真正的编程语言,相对于 Shell,它提供的针对大型程序的支持和结构要多的多。另一方面,它提供了比 C 更多的错误检查,并且,做为一门高级语言,它拥有内置的高级数据类型,例如可变数组和字典,如果通过 C 来实现的话,这些工作可能让你大干上几天的时间。因为拥有更多的通用数据类型,Python 适合比 Awk 甚至 Perl 更广泛的问题领域,在其它的很多领域,Python 至少比别的语言要易用得多。
Python 可以让你把自己的程序分隔成不同的模块,以便在其它的 Python 程序中重用。这样你就可以让自己的程序基于一个很大的标准模块集或者用它们做为示例来学习 Python 编程。Python 中集成了一些类似文件 I/O,系统调用,sockets,甚至像 Tk 这样的用户图形接口。
Python是一门解释型语言,因为不需要编译和链接的时间,它可以帮你省下一些开发时间。解释器可以交互式使用,这样就可以很方便的测试语言中的各种功能,以便于编写发布用的程序,或者进行自下而上的开发。还可以当它是一个随手可用的计算器。
Python 可以写出很紧凑和可读性很强的程序。用 Python 写的程序通常比同样的 C 或 C++ 程序要短得多,这是因为以下几个原因:
Python 是 可扩展的:如果你会用 C 语言写程序,那就可以很容易的为解释器添加新的集成模块和功能,或者优化瓶颈,使其达到最大速度,或者使 Python 能够链接到所需的二进制架构上(比如某个专用的商业图形库)。等你真正熟悉这一切了,你就可以把 Python 集成进由 C 写成的程序,把 Python 当做这个程序的扩展或命令行语言。
顺便说一下,这个语言的名字来源于 BBC 的“Monty Python's Flying Circus”节目,和凶猛的爬虫没有任何关系。在文档中引用 Monty Python 典故不仅是允许的,而且还受到鼓励!
现在你已经了解了 Python 中所有激动人心的东西,大概你想仔细的试试它了。学习一门语言最好的办法就是使用它,你会很乐于这样做。
下一节中,我们会很机械的说明解释器的用法。这没有什么神秘的,不过有助于我们练习后面展示的例子。
本指南其它部分通过例子介绍了 Python 语言和系统的各种功能,开始是简单表达式、语法和数据类型,接下来是函数和模块,最后是诸如异常和自定义类这样的高级内容。