1.1 Python简介
了解一门语言,我们先从它的历史说起。Python的应用越来越广泛,它最初是用来做什么用的,之后又是如何发展的,了解了这些,我们就能更加了解Python语言。
1.1.1 Python的历史由来
Python是一种开源的、面向对象的脚本语言。Python起源于1989年末,当时,CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员Guido van Rossum需要一种高级脚本编程语言为其研究小组的Amoeba分布式操作系统执行管理任务,为了创建新语言,他从高级数学语言ABC(All Basic Code)汲取了大量语法,并从系统编程语言Modula-3借鉴了错误处理机制。Guido把这种新的语言命名为Python(大蟒蛇),这个名字来源于BBC当时正在热播的喜剧连续剧《Monty Python》。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。Guido决心在Python语言中避免这一错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。
就这样,Python在Guido手中诞生了。可以说,Python从ABC发展起来,并且结合了UNIX Shell和C的习惯。Python源代码遵循GPL(GNU General Public License)协议,所以任何个人用户都可以免费使用。
1.1.2 Python的现状
Python于1991年初公开发行。由于功能强大且采用开源方式发行,因此Python发展得很快,用户越来越多,形成了强大的社区力量。2001年,Python的核心开发团队移师Digital Creations公司,该公司是Zope(一个用Python编写的Web应用服务器)的创始者。大家可以到http://www.python.org/上了解最新的Python动态和资料。
如今,Python已经成为最受欢迎的程序设计语言之一。
1.1.3 Python的应用
Python应用广泛,特别适用于以下几个方面:
- 系统编程:提供API(Application Programming Interface,应用程序编程接口),能方便地进行系统维护和管理,它也是Linux下的标志性语言之一,是很多系统管理员理想的编程工具。
- 图形处理:有PIL、Tkinter等图形库支持,能方便地进行图形处理。
- 数学处理:NumPy扩展提供了大量与标准数学库的接口。
- 文本处理:Python提供的re模块支持正则表达式,还提供SGML和XML分析模块,许多程序员利用Python进行XML程序的开发。
- 数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server、Oracle、Sybase、DB2、MySQL、SQLite等数据库通信。Python自带一个Gadfly模块,提供了一个完整的SQL环境。
- 网络编程:提供丰富的模块支持Sockets编程,能方便、快速地开发分布式应用程序。很多大规模软件开发计划(例如Zope、Mnet、BitTorrent及Google)都在广泛地使用Python。
- Web编程:网页应用的开发语言,支持最新的XML技术。
- 多媒体应用:Python的PyOpenGL模块封装了OpenGL应用程序编程接口,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
- PYMO引擎:PYMO(Python Memories Off)是一款运行于Symbian S60V3、Symbian3、S60V5、Symbian3、Android系统上的AVG游戏引擎。因其基于Python2.0平台开发,并且适用于创建“秋之回忆(Memories Off)”风格的AVG游戏,故命名为PYMO。
不止个人用户推崇Python,企业用户也对Python青睐有加,以下是明星企业的应用项目:
- Reddit:社交分享网站,最早用Lisp开发,在2005年转为Python。
- Dropbox:文件分享服务。
- 豆瓣网:图书、唱片、电影等文化产品的资料数据库网站。
- Django:鼓励快速开发的Web应用框架。
- Fabric:用于管理成百上千台Linux主机的程序库。
- EVE:网络游戏EVE大量使用Python进行开发。
- Blender:以C与Python开发的开源3D绘图软件。
- BitTorrent:BT下载软件客户端。
- Ubuntu Software Center:Ubuntu 9.10版本后自带的图形化包管理器。
- YUM:用于RPM兼容的Linux系统上的包管理器。
- Civilization IV:游戏《文明4》。
- Battlefield 2:游戏《战地2》。
- Google:谷歌在很多项目中用Python作为网络应用的后端,如Google Groups、Gmail、Google Maps等,Google App Engine支持Python作为开发语言。
- NASA:美国宇航局,从1994年起把Python作为主要开发语言。
- Industrial Light & Magic:工业光魔,乔治·卢卡斯创立的电影特效公司。
- Yahoo! Groups:雅虎推出的群组交流平台。
- YouTube:视频分享网站,在某些功能上使用到Python。
- Cinema 4D:一套整合3D模型、动画与绘图的高级三维绘图软件,以其高速的运算和强大的渲染插件著称。
- Autodesk Maya:3D建模软件,支持Python作为脚本语言。
- gedit:Linux平台的文本编辑器。
- GIMP:Linux平台的图像处理软件。
- Minecraft: Pi Edition:游戏《Minecraft》的树莓派版本。
- MySQL Workbench:可视化数据库管理工具。
- Digg:社交新闻分享网站。
- Mozilla:为支持和领导开源的Mozilla项目而设立的一个非营利组织。
- Quora:社交问答网站。
- Path:私密社交应用。
- Pinterest:图片社交分享网站。
- SlideShare:幻灯片存储、展示、分享的网站。
- Yelp:美国商户点评网站。
- Slide:社交游戏/应用开发公司,被谷歌收购。
还有很多企业级的应用这里就不一一列举了。Python适用于不同的场合、不同的人群,是适应性非常强的一门语言。