Python详细介绍
本节内容
- Python简史
- Python是一门什么样的语言?
- Python的优点与缺点
- Python解释器
一、Python简史
历史背景
在20世纪80年代,IBM和苹果已经掀起了个人电脑的浪潮。但是在今天看来,当时的个人电脑的配置都很低,以至于一个大的数组就能把内存占满。为了让程序能够运行,当时所有编程语言编译器的核心就是尽量的去做优化。为了提高程序运行效率,编程语言迫使程序员去像计算机一样思考,以便写出更符合计算机口味的程序。在那个时代,程序猿生活在水深火热之中,他们被迫去像资本家一样花费大量的时间和精力想尽一切办法去榨干计算机的每一寸能力。
Guido von Rossum,一个拥有阿姆斯特丹大学数学和计算机硕士双学位的荷兰人,他也是当时的一个苦逼程序猿,并且他已经接触并使用过C语言。当时Guido面临的现状是:即使他已经准确的知道了如何用C语言去写出一个功能,整个编写过程还是需要耗费大量的时间,因为他要考虑“这样写计算机是不是喜欢”。这让Guido感到非常苦恼。Guido的另外一个选择是使用shell。Boure Shell 作为UNIX系统的解释器(interpreter)已经长期存在。UNIX的管理员们常常用shell去写一些简单的脚本,以进行一些系统维护的工作。shell可以像胶水一样,将UNIX下的许单一的多功能组合在一起去完成一些复杂的工作。许多C语言需要上百行代码才能完成的功能,在shell下只需要用几行代码。然而,shell的本质是调用命令,它并不是一个真正的编程语言。总之,shell不能全面的调动计算机的功能。
Guido非常希望有一种编程语言既可以像C语言那样能够全面地调用计算机提供的的功能接口,又可以像shelll那样可以轻松的进行编程。
Python的诞生
1989年,Guido为了打发圣诞假期(看来,这也是个做IT的单身宅...),他开始写Python语言的编译器/解释器。Python的名字来自Guido非常喜欢的电视剧 Monty Python's Flying Circus。他希望这个叫做Python的语言能够是他一直想要的编程语言--介于C和shell之间,功能全面、易学易用、可扩展。
1991年,Python正式发布第一个版本。该版本用C语言实现了第一个Python编译器(同时也是解释器),并且它能够调用C库(.so文件),这为python编写高效的C扩展模块提供了先天性的条件。
Python的发展
促进Python发展的两个主要原因
计算机性能提高
90年代初,个人计算机开始进入普通家庭。Intel发布了486处理器,windows发布了window 3.0开始的一系列视窗系统。计算机的性能大大提高,程序员开始关注计算机的易用性。
开源社区逐渐形成
1990年的个人电脑时代,许多程序员以及资深计算机用户已经在频繁使用Internet进行交流(包括email 和 newsgroup),这让信息交流成本大大下降。当时Unix的商业化让爱好开放、自由的IT从业人员感到崩溃,而GNU组织的成立促使一种新的软件开发模式开始流行:open source。程序员利用业余时间进行软件开发,并开放源代码。1991年,Linus在comp.os.minix新闻组上发布了Linux内核源代码,吸引了大批hacker的加入。Linux的出现之前,那些开源软件只能跑在他们深恶痛绝的已经商业化的UNIX系统上。这是很滑稽,也是让开源软件开发者们感到非常的郁闷的。Linux的出现,让他们重新找到了组织,Linux和GNU相互合作,最终构成了一个从满活力的开源平台。
Python各版本迭代
硬件性能不再是瓶颈,Python又容易使用,所以许多人开始转向Python。另外,Guido后来宣布Python遵循GPL协议,Python从此走上了开源的道路,并且在开源社区的参与下开始快速发展。
- 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。他的愿望是:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
- 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
- Granddaddy of Python web frameworks, Zope 1 was released in 1999
- Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
- Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
- Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
- Python 2.5 - September 19, 2006
- Python 2.6 - October 1, 2008
- Python 2.7 - July 3, 2010
- In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
- Python 3.0 - December 3, 2008
- Python 3.1 - June 27, 2009
- Python 3.2 - February 20, 2011
- Python 3.3 - September 29, 2012
- Python 3.4 - March 16, 2014
- Python 3.5 - September 13, 2015
现状
Python得到广泛的认可和应用
自从2004年以后,Python的使用率呈线性增长。现在Python已经成为最受欢迎的程序设计语言之一。
2016年TIOBE编程语言排行榜图:
由上图可见,Python的使用率整体呈上升趋势,说明Python逐渐得到了业内的认可,并且得到了越来越广泛的应用。这得益于Python的简单易学,但个人认为更重要的原因在于两个方面:
- Python可扩展的模块化架构
- Python走上开源之路,开源社区中提供了大量的实用的第三方库
Python应用领域
Python现在被广泛用于众多领域:
系统运维 通过Python提供API能方便的进行系统维护和管理,Python已成为Linux系统下的标志性语言之一;
云计算 Python是目前云计算领域最火的语言,典型应用为OpenStack;
Web编程 出现了很多python的web开发框架,如django、tronado,flash等;Youtube、豆瓣、知乎、春雨医生等公司所有业务几乎都是用Python完成,另外python在google内部也被大量使用;
科学计算、人工智能 NumPy扩展提供了大量标准数学库的接口,其他的典型库还有SciPy、Matplotlib、Enthgout librarys、pandas;
文本处理 Python提供的re模块支持正则表达式,还提供SGML和XML分析模块;
数据库编程 程序员可以通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server、Orace、DB2、MySQL、SQLite等数据库进行通信;此外,Python自带一个Gadfly模块,提供了
一个完整的SQL环境;网络编程 Python提供了丰富的模块支持socket编程,能方便快速地开发分布式应用程序;
图形处理 有PIL、Tkinter、PyQT等图形库支持,能方便进行图形处理;
其他 python可以用来做很多事其他的事情,如编写爬虫程序、多媒体应用、pymo引擎(AVG游戏引擎)
正在向Python 3.0过度
今天Python已经进入到3.0的时代。由于Python 3.0向后不兼容,所以从2.0到3.0的过渡并不容易。另一方面,Python的性能依然值得改进,Python的运算性能低于C++和Java(见Google的讨论),因此Python依然是一个在发展中的语言。