如果你经常性的需要用计算机去做一些事情,这些事情中大部分情况可能是经常重复性的或者是枯燥的,最终(eventually)你会想让这些任务(task)实现自动化(automate)。例如,你可能希望在一个大的文本文件中执行一些类似于搜索替换或者是重命名,可能你还希望对一堆(a bunch of )照片文件使用一种相对复杂(complicated)的方式进行重新排列(rearrange),或者你更加钟情于自己实现一个小型的客户端数据库(custom database),或者一个专业的(specialized)图形化应用程序,或者是一个简单的游戏。
如果你是一个专业的(professional)软件开发者,你可能会同多个c/c++/java库打交道,但是你会发现常规的(usual)编写-->编译-->测试-->再编译的往复循环过程太慢了。假定(perhaps)你自己已经为这些库写好了一个测试套件(test suite),但是发现写这些测试代码是一个枯燥(tedious)的任务,或者可能你已经写好了一个程序,它可以使用一种扩展语言,但是你没有必要去为你的这个应用去设计和实现(implement)一个全新的语言。
那么,python正是你所需要的那种语言!
当然了,你也可以为一些任务在linux下写一个shell脚本或者在windows写一个批处理文件(batch files),但是shell脚本主要适用于处理类似移动文件(moving around files)和改变文本数据方面,在图形界面应用和游戏方面不太适用(not well-suited)。同样的,你也可以写一个c/c++/java的程序来做对应的工作,但是即使是你想得到一个程序的测试版也会耗费你大量的开发时间(development time)。那么python在这方面就很简单并且适用(simple and use),python可以工作在windows平台下、mac 平台下和类Unix 操作系统上,它可以帮助你快速且容易的完成你的工作(get the job done more quickly)。
python虽然上手简单,但是它却是一门真正的编程语言,它相对shell脚本和批处理文件,python提供更多的(much more)结构(structure)同时支持大型的程序。在另一方面,相对于c而言python提供更多的错误检测和处理方式,这使得python也成为了一门高级语言(very-high-level language),它内置了高级的数据类型,例如灵活的(flexible)的数组和字典。由于它包含大量的常见(general)数据类型,这使得python相比Awk,python可以应用(applicable)在一些大型的问题领域中,有时候甚至可以和Perl相比较,至少相对比其它编程语言,使用python在处理很多事情的时候会相对容易一些。
python允许你把你的程序分割成模块,然后在其它的python程序中去复用它们,而且也推荐你这么做。python提供了一个包含大量的标准(standard)模块集合,你可以使用这些模块作为你的程序的基础,同样的你可以把这些模块当做学习如何使用python进行编程的例子。这些标准模块提供了像文件I/O处理、系统调用、socket编程,甚至还包括可以提供图形用户界面接口的工具包(toolkits)例如Tk。
python是一门解释型语言,这样它就可以帮组你节省(save)大量的(considerable)开发时间,因为它不需要(necessary)编译和链接。python的解释器同样可以在交互模式下使用(used interactively),这就使得你可以轻松的去尝试(experiment)一下python的语言特性(features of the language),或者是写一个随时可以丢弃(throw-away)的程序,或者在采用自底向上(bottom-up)的程序开发模式的时候可以用来测试一些方法。哈,同样的,这也是你的一个方便的(handy)桌面计算器(calculator)。
python希望程序可以采用简洁(compactly)且易读(readably)的方式编写。使用Python编写的程序,相对于其它像c、c++、java等编写的程序要简短的很多,主要要以下几个原因:
1,内置的高级的数据类型,允许当你想表达(express)一些复杂(complex)的操作的时候可以采用一种简单的声明(statement)来替代
2,采用缩进(indentation)的方式来声明代码段或者组,而非采用常规的开始、结束方括号(brackets)
3,变量及参数在使用前必须要声明(declarations)不再是必须的
python是可被扩展的。如果你知道如何编写C程序,那么就可以非常容易的为python解释器新增一个内置的方法或者模块,也可以采用最快速度(maximum speed)去执行(perform)一些关键性的操作(critical operations),或者在库中去链接python程序,那么这种方式只有在二进制格式下才是被运行的(例如像操作系统平台厂商特定(vendor-specific)的图形渲染库)。一旦你真正的链接成功,那么这时你就可以在你的C程序编写的应用中去链接python解释器,然后把它当做是一个扩展或者是命令行编程语言。
顺便一提的是关于python命名的来源,python之所以被命名为python是因为美国BBC播出的一档节目Monty Python的飞行马戏团(Monty Python‘s Flaying Circus(马戏团)),而并非和任何的爬行动物(reptiles)有关。在文档中以Monty Python这种短剧(skits)作为参考(Making reference)不仅仅是被允许,而且还是被鼓励(encouraged)这么做的!
现在,你已经对Python产生了一种兴奋(excited),你想马上去尝试一下(examine)更多的有关python的细节(detail)。学习一门语言最好的方式就是去使用它,在手册中的入门指引这一章节就是邀请你在命令行下去和python解释器玩耍,开启你的学习之旅!
在下一个章节里,将会为你解释(explained),在你的机器上怎么样去使用python的解释器。这也是(rather)一份相对简单的(mundane)文档信息,但是在文档的最后会附上一些精华类的要点(essential)案例供你去练习。
手册中入门指引这一章节,通过一些案例介绍(introduces)了关于python语言和系统的各种各样的(various)特性,从简单的表达式(expressions),语句块(statements)和数据类型,然后到方法和模块,并且最终可以接触到(touching upon)高级的特性(advanced concepts)像异常和自定义类等。