Python的做者,Guido von Rossum(吉多·范·罗苏姆,中国Python程序员都叫他 龟叔),荷兰人。1982年,龟叔从阿姆斯特丹大学得到了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,虽然拥有数学和计算机双料资质,他总趋向于作计算机相关的工做,并热衷于作任何和编程相关的事情。java
在那个时候,龟叔接触并使用过诸如汇编语言、C等编程语言。这些语言的基本设计原则都是让机器能更快运行。在80年代,虽然IBM和苹果已经掀起了我的电脑浪潮,但这些我的电脑的配置很低,一个大的数组就能占满内存。全部的编译器的核心是作优化,以便让程序可以运行。python
这种编程方式让龟叔感到苦恼。龟叔知道如何用C语言写出一个功能,但整个编写过程须要耗费大量的时间,即便他已经准确的知道了如何实现。他的另外一个选择是shell。Bourne Shell做为UNIX系统的解释器已经长期存在。UNIX的管理员们经常用shell去写一些简单的脚本,以进行一些系统维护的工做,好比按期备份、文件系统管理等等。shell能够像胶水同样,将UNIX下的许多功能链接在一块儿。许多C语言下上百行的程序,在shell下只用几行就能够完成。然而,shell的本质是调用命令。它并非一个真正的语言。好比说,shell没有数值型的数据类型,加法运算都很复杂。总之,shell不能全面的调动计算机的功能。程序员
龟叔但愿有一种语言,这种语言可以像C语言那样,可以全面调用计算机的功能接口,又能够像shell那样,能够轻松的编程。ABC语言让龟叔看到但愿。ABC是由荷兰的数学和计算机研究所开发的。龟叔在该研究所工做,并参与到ABC语言的开发。ABC语言以教学为目的。与当时的大部分语言不一样,ABC语言的目标是“让用户感受更好”。ABC语言但愿让语言变得容易阅读,容易使用,容易记忆,容易学习,并以此来激发人们学习编程的兴趣。redis
1989年,为了打发圣诞节假期,龟叔开始写Python语言的编译器。Python这个名字,来自龟叔所挚爱的电视剧Monty Python's Flying Circus(巨蟒剧团的飞行的马戏团)。 他但愿这个新的叫作Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。龟叔做为一个语言设计爱好者,已经有过设计语言的尝试。这一次,也不过是一次纯粹的即兴行为。算法
1991年,第一个Python编译器诞生。它是用C语言实现的,并可以调用C语言的库文件。从一出生,Python已经具备了 :类,函数,异常处理,包含表和字典在内的核心数据类型,以及模块为基础的拓展系统。shell
Python语法不少来自C,但又受到ABC语言的强烈影响。来自ABC语言的一些规定直到今天还富有争议,好比强制缩进。 但这些语法规定让Python容易读。另外一方面,Python聪明的选择服从一些惯例,特别是C语言的惯例,好比回归等号赋值等。龟叔认为,若是“常识”上确立的东西,没有必要过分纠结。编程
Python从一开始就特别在乎可拓展性。Python能够在多个层次上拓展。从高层上,你能够直接引入. py文件。在底层,你能够引用C语言的库。Python程序员能够快速的使用Python写. py文件做为拓展模块。但当性能是考虑的重要因素时,Python程序员能够深刻底层,写C程序,编译为.so文件引入到Python中使用。Python就好像是使用钢构建房同样,先规定好大的框架。而程序员能够在此框架下至关自由的拓展或更改。数组
最初的Python彻底由龟叔本人开发。Python获得龟叔同事的欢迎。他们迅速的反馈使用意见,并参与到Python的改进。龟叔和一些同事构成Python的核心团队。他们将本身大部分的业余时间用于改进 Python。随后,Python拓 展到研究所以外。Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python程 序员能够花更多的时间用于思考程序的逻辑,而不是具体的实现细节。这一特征吸引了广大的程序员。Python开始流行。服务器
计算机硬件愈来愈强大,Python又容易使用,因此许多人开始转向Python。龟叔维护了一个mail list,Python用户就经过邮件进行交流。Python用户来自许多领域,有不一样的背景,对Python也有不一样的需求。Python至关的开放又容易拓展,因此当用户不知足于现有功能,很容易对Python进行拓展或改造。随后这些用户将改动发给龟叔,并由龟叔决定是否将新的特征加入到Python或者标准库中。若是代码能被归入Python自身或者标准库,这将极大的荣誉。因为龟叔至高无上的决定权,他所以被称为“仁慈的独裁者”。网络
Python以及其标准库的功能强大。这些是整个社区的贡献。Python的开发者来自不一样领域,他们将不一样领域的优势带给Python。好比Python标准库中的正则表达是参考Perl,而lambda, map, filter, reduce等函数参考了Lisp。Python自己的一些功能以及大部分的标准库来自于社区。Python的社 区不断扩大,进而拥有了本身的网站以及基金。从Python 2.0开始,Python也从mail list的开发方式,转为彻底开源的开发方式。社区气氛已经造成,工做被整个社区分担,于此同时,Python也得到了更加高速的发展。
到今天,Python的框架已经确立。Python语言以对象为核心组织代码,支持多种编程范式,采用动态类型,自动进行内存回收。Python支持解释运行,并能调用C库进行拓展。Python有强大的标准库。因为标准库的体系已经稳定,因此Python的生态系统开始拓展到第三方包。这些包,如Django、Flask、numpy、matplotlib、PIL,将Python升级成了物种丰富的‘热带雨林’。
Python崇尚优美、清晰、简单,是一个优秀并普遍使用的语言。Python在TIOBE(开发语言排行榜)排行榜中排行第4位,它是Google的第三大开发语言,豆瓣的服务器语言。Google、Tencent、Facebook都在内部大量地使用Python。(商业活动的推进)
在Python的开发过程当中,社区起到了重要的做用。龟叔自认为本身不是全能型的程序员,因此他只负责制订框架。若是问题太复杂,他会选择绕过去,也就是cut the corner。这些问题最终由社区中的其余人解决。社区中的人才是异常丰富的,就连建立网站,筹集基金这样与开发稍远的事情,也有人乐意于处理。现在的项目开发愈来愈复杂,愈来愈庞大,合做以及开放的心态成为python语言最终成功的关键。
Python的做者是Guido van Rossum(龟叔) Python正式诞生于1991年 Python的解释器现在有多个语言实现,咱们经常使用的是CPython(官方版本的C语言实现),其余还有Jython(能够运行在Java平台)等
Python目前有两个版本,Python2.x和Python3.x,最新版分别为2.7.13和3.7.0 Life is shot, you need Python. 人生苦短,我用Python。
优势: 规范的代码,简单,易学,高层语言,跨平台(可移植性强),支持面向对象编程,丰富的库等优势。 提升开发效率:(假设开发某一功能模块) C -- 1000行代码 java -- 100行代码 python -- 20行代码
缺点: Python语言很是完善,没有明显的短板和缺点,惟一的缺点就是执行效率慢,这个是解释型语言所通有的,同时这个缺点也将被计算机愈来愈强大的性能所弥补。
编程语言 主要是随着计算机软硬件系统的发展以及互联网的发展而快速兴起并发展壮大的。
互联网发展:
-- 互联网时代(网吧,电脑)
-- 移动互联网时代(智能手机,安卓,iOS)
-- 大数据时代(须要海量的数据资源,推进技术的发展)
-- 人工智能时代(须要经过海量的数据对计算机进行训练)
1. python Web 开发工程师 Python常常被用于Web开发。好比,经过mod_wsgi模块,Apache能够运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通讯。一些Web框架,如Django,Flask,Django REST framework等,可让程序员轻松地开发和管理复杂的Web程序。
2. python运维工程师(操做系统管理、服务器运维的自动化脚本) 在不少操做系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,能够在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,好比Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操做系统功能的库。经过pywin32这个第三方软件 包,Python可以访问Windows的COM服务及其它Windows API。使用IronPython,Python程序可以直接调用.Net Framework。通常说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。
3. python网络爬虫工程师 Python有大量的HTTP请求处理库和HTML解析库,而且有成熟高效的爬虫框架Scrapy和分布式解决方案scrapy-redis,在爬虫的应用方面很是普遍。
4. 科学计算(算法工程师) NumPy、Pandas、Matplotlib可让Python程序员编写科学计算程序。
5. 桌面软件 PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。 6. 服务器软件(网络软件) Python对于各类网络协议的支持很完善,所以常常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),而且提供了多种工具,被普遍用于编写高性能的服务器软件。