1. 课前甜点
***********

如果你经常在电脑上工作，总会有些任务会想让它自动化。比如，对一大堆文本
文件进行查找替换，对很多照片文件按照比较复杂的规则重命名并放入不同的文
件夹。也可能你想写一个小型的数据库应用，一个特定的图形界面应用，或者一
个简单的游戏。

如果你是专业的软件开发人员，你可能需要编写一些 C/C++/Java 库，但总觉得
通常的 编写、编译、测试、再次编译 流程太慢了。可能给这样的库写一组测试
，就是很麻烦的工作了。或许你写了个软件，可以支持插件扩展语言，但你不想
为了自己这一个应用，专门设计和实现一种新语言了。

那么，Python 正好能满足你的需要。

对于这些任务，你也可以写 Unix shell 脚本或者 Windows 批处理完成，但是
shell 脚本最擅长移动文件和替换文本，并不适合 GUI 界面或者游戏开发。你
可以写一个 C/C++/Java 程序，但是可能初稿都要很长的开发时间。Python 的
使用则更加简单，可以在 Windows，Mac OS X，以及 Unix 操作系统上使用，而
且可以帮你更快地完成工作。

Python 很容易使用，但它是一种真正的编程语言，提供了很多数据结构，也支
持大型程序，远超 shell 脚本或批处理文件的功能。Python 还提供比 C 语言
更多的错误检查，而且作为一种 “超高级语言”，它有高级的内置数据类型，比
如灵活的数组和字典。正因为这些更加通用的数据类型，Python 能够应付更多
的问题，超过 Awk 甚至 Perl，而且很多东西在 Python 中至少和那些语言同样
简单。

Python 允许你将程序划分为能在其他的 Python 程序中重复利用的模块。它内
置了很多的标准模块，你可以在此基础上开发程序——也可以作为例子，开始学习
Python 编程。例如，一切内置模块提供诸如文件输入输出、系统调用、套接字
、甚至图形界面接口工作包比如 Tk。

Python 是一种解释型语言，在程序开发阶段可以为你节省大量时间，因为不需
要编译和链接。解释器可以交互式使用，这样就可以方便地尝试语言特性，写一
些一次性的程序，或者在自底向上的程序开发中测试功能。它也是一个顺手的桌
面计算器。

Python 程序的书写是紧凑而易读的。Python 代码通常比同样功能的 C，C++，
Java 代码要短很多，有如下几个原因：

* 高级数据类型允许在一个表达式中表示复杂的操作；

* 代码块的划分是按照缩进而不是成对的花括号；

* 不需要预先定义变量或参数。

Python 是 “可扩展的”：如果你知道怎么写 C 语言程序，就能很容易地给解释
器添加新的内置函数或模块，不论是让关键的操作以最高速度运行，还是把
Python 程序链接到只提供预编译程序的库（比如硬件相关的图形库）。一旦你
真正链接上了，就能在 Python 解释器中扩展或者控制 C 语言编写的应用了。

顺便提一下，这种语言的名字（python 一词直译为 “蟒蛇”）得名自 BBC 节目
“Monty Python的飞行马戏团” ，而与爬行动物没有关系。在文档中用 Monty
Python 来开玩笑不只是被允许的，还是被推荐的！

现在你已经对 Python 跃跃欲试了，想要深入了解一些细节了。因为学习语言的
最佳方式是使用它，本教程邀请你一边阅读，一边在 Python 解释器中玩耍。

在下一章节，会讲解使用解释器的方法。看起来相当枯燥，但是对于尝试后续的
例子来说，是非常关键的。

教程的其他部分将通过示例介绍 Python 语言和系统中的不同功能，开始是比较
简单的表达式、语句和数据类型，然后是函数和模块，最终接触一些高级概念，
比如异常、用户定义的类。
