如果你的很多工作都用计算机完成,你最终会发现有一些工作是可以自动完成的。比如说,你可能以非常复杂的方式完成对大量文本文件进行查找和替换,或者重命名和重新排列一大堆相片。也许你想写一个小型的自定义数据库,一个特别的GUI应用程序,或者一个简单的游戏。
如果你是一个专业的软件开发者,工作时你可能必须使用一些C/C++ /Java库但是却发现编写、编译、测试、再编译这样的循环是如此缓慢!可能你正在为这样一个库编写测试组件,然后发现编写测试代码真是一项乏味的工作。或者你可能已经写过一个可以使用扩展语言的程序,然而你并不想为你的程序设计和实现一门全新的语言。
是的,Python正是那门适合你的语言。
你可以写一个Unix shell脚本或者使用Windows批处理来应对这些工作,但是shell脚本最擅长的是移动文件和改变文本内容,并不适合GUI应用程序或游戏。你也可以写一个C/C++/Java程序,但是仅仅一个程序原型也会花费你大量的开发时间。而Python就容易使用多了,它可以运行在Windows,Mac OS X和Unix上,来帮助你更加快速的完成工作。
虽然Python使用简单,但它确实是一门真正的编程语言,它比shell和批处理文件提供了更多的结构和对大型程序的支持。另一方面,相对于C语言Python提供了更多的错误检查,而且作为一种高级语言,它有着内置的高级数据类型,比如灵活的数组和字典。由于Python有着更多的一般数据类型,所以它比Awk甚至Perl更适用于大型程序领域,而且许多事情用Python处理与他们至少同样容易。
Python允许你将程序分割成可以在其他Python程序中使用的模块。它提供了大量的标准模块让你用作自己程序的基石或者作为开始学习Python编程的例子。这些模块包括文件I/O、系统调用、socket,甚至像Tk这样的GUI工具包接口。
Python是一种解释性的语言,由于不需要编译和链接,所以在程序开发中,它可以为你节省大量的时间。它的解释器可以以交互的方式使用,这使得你很容易验证Python的特性,编写一次性(即不以文件形式保存)的程序,或者在自底向上的程序开发中测试函数。它同时还可以作为一个方便的桌面计算器。
Python能让你的代码更加紧凑和可读性更强。由于以下几个原因,用Python写的程序往往比用C/C++或Java写的更短:
Ø Python的高级数据类型允许你在一条语句中进行复杂的操作
Ø 用缩进来表示语句块而不是用两个括号
Ø 不需要对变量和参数进行声明
Python是可扩展的:如果你知道如何用C编程,那么你很容易地就可以为解释器添加一个内置的函数或模块,可以以最快的速度进行临界操作,或者将Python程序链接到那些二进制库(比如某个厂商的图形库)。一旦你入迷(hooked)了,你可以将Python解释器链接到C程序,把它作为一个扩展或者命令语言。
顺便说一下,该语言的名字来源于一个BBC节目“Monty Python’s Flying Circus”与巨蟒没有关系,我们被授权并被鼓励引用MontyPython小品。
既然你对Python很感兴趣,那么你肯定想了解它更多的细节。因为学一门语言最好的方法就是使用它,所以该指南就邀请你把玩Python解释器。
在下一章我们将教授你Python的使用方法。该内容可能有点枯燥,但它对后面例子的实践却很重要。
该指南其余的部分将通过例子向你介绍Python语言和体系的各种特性,刚开始是一些简单的表达式、语句和数据类型,接着是函数和模块,最后将涉及到像异常和用户自定义类型这样的高级概念。