全栈开发-Python的介绍

本篇刚要

  • Python的诞生
  • Python的应用领域
  • Python的优缺点
  • Python的解释器
  • Python的发展史
  • Python2 or Python3?

1、 Python的历史

  Python的创始人吉多·范罗苏姆(Guido van Rossum,龟叔),Guido接触并使用过诸如Pascal、C、Fortran等语言。这些语言的基本设计原则是让机器能更快运行。在80年代,虽然IBM和苹果已经掀起了我的电脑浪潮,但这些我的电脑的配置很低。好比早期的Macintosh,只有8MHz的CPU主频和128KB的RAM,一个大的数组就能占满内存。全部的编译器的核心是作优化,以便让程序可以运行。为了增进效率,语言也迫使程序员像计算机同样思考,以便能写出更符合机器口味的程序。python

  Guido知道如何用C语言写出一个功能,但整个编写过程须要耗费大量的时间,即便他已经准确的知道了如何实现。他的另外一个选择是shell。Bourne Shell做为UNIX系统的解释器已经长期存在。UNIX的管理员们经常用shell去写一些简单的脚本,以进行一些系统维护的工做,好比按期备份、文件系统管理等等。shell能够像胶水同样,将UNIX下的许多功能链接在一块儿。许多C语言下上百行的程序,在shell下只用几行就能够完成。然而,shell的本质是调用命令。它并非一个真正的语言。好比说,shell没有数值型的数据类型,加法运算都很复杂。总之,shell不能全面的调动计算机的功能。程序员

  Guido但愿有一种语言,这种语言可以像C语言那样,可以全面调用计算机的功能接口,又能够像shell那样,能够轻松的编程。ABC语言让Guido看到但愿。ABC是由荷兰的数学和计算机研究所开发的。Guido在该研究所工做,并参与到ABC语言的开发。ABC语言以教学为目的。与当时的大部分语言不一样,ABC语言的目标是“让用户感受更好”。ABC语言但愿让语言变得容易阅读,容易使用,容易记忆,容易学习,并以此来激发人们学习编程的兴趣。web

  1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器,Python正式诞生于1991年。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他但愿这个新的叫作Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。Guido做为一个语言设计爱好者,已经有过设计语言的尝试。最初的Python彻底由Guido本人开发。Python获得Guido同事的欢迎。他们迅速的反馈使用意见,并参与到Python的改进。Guido和一些同事构成Python的核心团队。他们将本身大部分的业余时间用于hack Python。随后,Python拓展到研究所以外。Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python程序员能够花更多的时间用于思考程序的逻辑,而不是具体的实现细节。这一特征吸引了广大的程序员。 算法

人生苦短,我用Python 

   截止至2016年7月,python在TIOBE流行编程语言排行榜,已经上升到第四名。而且从趋势图中能够看出其还在呈增加趋势。shell

 

2、Python的应用领域

  • 数据分析: 2016/2月/11,美国科学家宣布发现引力波,分析观测30年的数据。分析引力波数据的Python包:GWPY
  • 云计算 : 典型应用——Python开发的OpenStack
  • WEB开发: 众多优秀的WEB框架,Django、flask、 tornado
  • 科学运算人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas。
  • 系统运维: 运维人员必备,slatstack(系统自动化配置和管理工具),Ansible(自动化运维工具)
  • 图形开发: wxPython、PyQT、TKinter
  • 而且愈来愈多的公司选在python做为其主要开发语言,例如:
  • Google - Google Groups、Gmail、Google Maps、AlphaGo等,Google App Engine支持python做为开发语言
  • NASA - 美国宇航局,从1994年起把python做为主要开发语言
  • Dropbox - 美国最大的在线云存储网站,所有用Python实现,天天网站处理10亿个文件的上传和下载
  • 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
  • BitTorrent - bt下载软件客户端
  • gedit - Linux平台的文本编辑器
  • GIMP - Linux平台的图像处理软件(Linux下的PS)
  • 知乎(国外的Quora) - 社交问答网站,国内最大的问答社区,经过Python开发
  • Autodesk Maya - 3D建模软件,支持python做为脚本语言
  • YouTube:世界上最大的视频网站YouTube就是用Python开发的
  • Facebook:大量的基础库均经过Python实现的
  • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的

除上面以外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各类各样的任务。数据库

3、Python的优缺点

   优势:

  1.   Python的定位是“优雅”、“明确”、“简单”,因此Python程序看上去老是简单易懂,初学者学Python不但入门容易,并且未来深刻下去,能够编写那些很是复杂的程序。
  2.  开发效率很是高,Python有很是强大的第三方库,基本上你想经过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大下降开发周期,避免重复造轮子。
  3.  高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4.  可移植性————因为它的开源本质,Python已经被移植在许多平台上(通过改动使它可以工做在不一样平台上)。若是你当心地避免使用依赖于系统的特性,那么你的全部Python程序无需修改就几乎能够在市场上全部的系统平台上运行
  5.  可扩展性————若是你须要你的一段关键代码运行得更快或者但愿某些算法不公开,你能够把你的部分程序用C或C++编写,而后在你的Python程序中使用它们。
  6.  可嵌入性————你能够把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能

    缺点:

  1. 代码不能加密,由于PYTHON是解释性语言,它的源码都是以明文形式存放的,不过我不认为这算是一个缺点,若是你的项目要求源代码必须是加密的,那你一开始就不该该用Python来去实现。
  2.  多线程支持很差
  3.  Python相对C语言确实慢不少,但其实这里所指的速度慢在大多数时候咱们是没法感知的,好比说,是用C语言程序开发了一个程序,执行须要花0.01秒,使用Python实现一样功能的程序,须要花0.1秒的时间,虽然相差10倍,可是咱们基本是感知不到的。更多的时候,程序慢是程序员实现功能方式致使的。就好像开罐头的时候,有的人用牙咬,有的人用工具,这样两我的的效率相比起来就差了不少。

4、Python的解释器

  1. Cpython——Python的官方版本,使用C语言实现,使用最为普遍,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),而后运行在Python虚拟机上。
  2. Jython——Python的Java实现,Jython会将Python代码动态编译成Java字节码,而后在JVM上运行。
  3. IronPython——Python的C#实现,IronPython将Python代码编译成C#字节码,而后在CLR上运行。(与Jython相似)
  4. PyPy——Python实现的Python,将Python的字节码字节码再编译成机器码。此编辑器可以大大加快Python程序的运行速度,可能会是Python的将来。
  5. RubyPython、Brython ...
  6. Python的解释器不少,但使用最普遍的仍是CPython。若是要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是经过网络调用来交互,确保各程序之间的独立性。

5、Python发展史

  1989年的圣诞节,Guido开始编写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他但愿这个新的叫作Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。编程

  1991年,第一个Python编译器诞生。它是用C语言实现的,并可以调用C语言的库文件。从一出生,Python已经具备了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。flask

  • Python 1.0 - January 1994 增长了 lambda, map, filter and reduce.
  • 1999年 Python的web框架之祖——Zope 1发布
  • Python 2.0 - 2000/10/16,加入了内存回收机制,构成了如今Python语言框架的基础
  • Python 2.4 – 2004/11/30, 同年目前最流行的WEB框架Django 诞生
  • Python 2.5 - 2006/09/19
  • Python 2.6 - 2008/10/1
  • Python 2.7 - 2010/07/03
  • Python 3.0 - 2008/12/03 
  • Python 3.1 - 2009/06/27
  • Python 3.2 - 2011/02/20
  • Python 3.3 - 2012/09/29
  • Python 3.4 - 2014/03/16
  • Python 3.5 - 2015/09/13

  2014年11月,Python2.7将在2020年中止支持的消息被发布,而且不会在发布2.8版本,建议用户尽量的迁移到3.4+    Python最初发布时,在设计上有一些缺陷,好比Unicode标准晚于Python出现,因此一直以来对Unicode的支持并不彻底,而ASCII编码支持的字符有限。例: 对中文支持很差Python3相对Python早期的版本是一个较大的升级,Py3在设计的时候没有考虑向下兼容,因此不少早期版本的Python的程序没法再Py3上运行。为了照顾早期的版本,推出过渡版本2.6——基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,容许使用部分Python 3.0的语法与函数。2010年继续推出了兼容版本2.7,大量Python3的特性被反向迁移到了Python2.7,2.7比2.6进步很是多,同时拥有大量3中的特性和库,而且照顾了原有的Python开发人群。数组

6、Python2仍是Python3?

  py2.7是2.x系列的最后一个版本,已经中止开发,再也不增长新功能。2020年终止支持。全部的最新的标准库的更新改进,只会在3.x的版本里出现。Guido决定清理Python2.x ,而且再也不兼容旧版本。网络

  最大的一个改变就是使用Unicode做为默认编码。Pyhton2.x中直接写中文会报错,Python3中能够直接写中文了。从开源项目看,支持py3的比例已经大大提升,知名的项目通常都支持py2.7和py3+。

  2.x默认ASSIC。

  3.x默认UNICODE,默认支持中文。

  py3比py2更规范统1、去掉了不必的关键字Python3.x还在持续改进,因此咱们仍是推荐你们使用Python3.x。

相关文章
相关标签/搜索