Python发展史和编程语⾔的分类
⼀、脚本语⾔
  脚本语⾔是为了缩短传统的编写-编译-链接-运⾏(edit-compile-link-run)过程⽽创建的计算机编程语⾔,每次运⾏都会使对话框逐字重复。
  早期的脚本语⾔经常被称为批处理语⾔或⼯作控制语⾔。⼀个脚本通常是解释运⾏⽽⾮编译。虽然许多脚本语⾔都超越了计算机简单任务⾃动化的领
域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。⼏乎所有计算机系统的各个层次都有⼀种脚本语⾔。包括操作系统层,如计算机游戏,⽹络应⽤
程序,⽂字处理⽂档,⽹络软件等。
  在许多⽅⾯,⾼级编程语⾔和脚本语⾔之间互相交叉,⼆者之间没有明确的界限。⼀个脚本可以使得本来要⽤键盘进⾏的相互式操作⾃动化。⼀个Shell 脚本主要由原本需要在命令⾏输⼊的命令组成,或在⼀个⽂本编辑器中,⽤户可以使⽤脚本来把⼀些常⽤的操作组合成⼀组序列。主要⽤来书写这种脚本的
语⾔叫做脚本语⾔。很多脚本语⾔实际上已经超过简单的⽤户命令序列的指令,还可以编写更复杂的程序。
⼆、什么是Python
  Python, 是⼀种⾯向对象的解释型计算机程序设计语⾔,由荷兰⼈Guido van Rossum(吉多·范罗苏姆)于1989年发明,第⼀个公开发⾏版发⾏于1991年。
  Python是纯粹的⾃由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特⾊之⼀是强制⽤空⽩符(white space)作为语句缩进。
  Python具有丰富和强⼤的库。它常被昵称为胶⽔语⾔,能够把⽤其他语⾔制作的各种模块(尤其是C/C++)很轻松地联结在⼀起。常见的⼀种应⽤情形是,使⽤Python快速⽣成程序的原型(有时甚⾄是程序的最终界⾯),然后对其中有特别要求的部分,⽤更合适的语⾔改写,⽐如3D游戏中的图形渲染模块,性能要求特别⾼,就可以⽤C/C++重写,⽽后封装为Python可以调⽤的扩展类库。需要注意的是在您使⽤扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
  7⽉20⽇,IEEE发布2017年编程语⾔排⾏榜:Python⾼居⾸位。
三、Python的发展史
  1989年,Guido开始写Python语⾔的编译器。 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 (细⼼的读者会发现,08年时就推出了3.0,2010年反⽽⼜推出了2.7?是因为3.0不向下兼容2.0,⽽很多公司已经基于2.0版本开发出了⼤量程序,公司已然投⼊了⼤量的⼈财物⼒,这就导致⼤家都拒绝升级3.0,⽆奈官⽅只能推出2.7过渡版本,之后我们都应该采⽤3.0解释器开发程序,但为了⽅便读者维护2.0版本的软件,我们在遇到两种版本的差异时会专门指出来)
  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 3.6 - 2016-12-23 发布python3.6.0版
四、Python解释器有哪些种类?
  官⽅的Python解释器本质就是基于C语⾔开发的⼀个软件,该软件的功能就是读取以.py结尾的⽂件内
容,然后按照Guido定义好的语法和规则去翻译并执⾏相应的代码。这种⽤C实现的解释器称为CPython,它是python领域性能最好,应⽤最⼴泛的⼀款解释器,我们在后⾯提到的解释器指的都是Cpython解释器。但其实解释器作为⼀款应⽤软件,完全可以采⽤其他语⾔来开发,只要能解释python这门语⾔的语法即可。Python解释器的⼀些种类如下,简单了解即可
编程语言有哪些类型# JythonJPython解释器是⽤JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执⾏,它不但使基于java的项⽬之上嵌⼊python脚本成为可能,同时也可以将java程序引⼊到python程序之中。
# IPython
IPython是基于CPython之上的⼀个交互式解释器,也就是说,IPython只是在交互⽅式上有所增强,但是执⾏Python代码的功能和CPython是完全⼀样的。
这就好⽐很多国产浏览器虽然外观不同,但内核其实都是调⽤了IE。
CPython⽤>>>作为提⽰符,⽽IPython⽤In [序号]:作为提⽰符。
# PyPy
PyPy是Python开发者为了更好地Hack Python⽽⽤Python语⾔实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进⾏动态编译(注意不是解释),因此运⾏速度⽐CPython还要快。
# IronPython
IronPython和Jython类似,只不过IronPython是运⾏在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
五、编程语⾔的分类
  1、机器语⾔
    计算机能读懂的语⾔就是⾼电平和低电平,我们⼈为的把⾼电平定义为1,低电平定义为0,⽤0和1进⾏组合表⽰⼆进制指令,计算机就能能直接理解它的含义,所以机器语⾔是⽤⼆进制编程,也就是说机器语⾔可以直接操作硬件。因此机器语⾔属于低级语⾔,低级指的是底层、贴近计算机硬件(贴近代指
需要详细了解计算机硬件细节、直接控制硬件)
  2、汇编语⾔
    汇编语⾔仅仅是⽤⼀个英⽂标签代表⼀组⼆进制指令,毫⽆疑问,⽐起机器语⾔,汇编语⾔是⼀种进步,但汇编语⾔的本质仍然是直接操作硬件,
因此汇编语⾔仍是⽐较低级/底层的语⾔、贴近计算机硬件。
  3、⾼级语⾔(编译型如C、解释型如Python)
    ⾼级语⾔是与操作系统打交道的,此处的⾼级指的是⾼层、开发者⽆需考虑硬件细节,因⽽开发效率可以得到极⼤的提升,但正因为⾼级语⾔离硬
件较远,更贴近⼈类语⾔,⼈类可以理解,⽽计算机则需要通过翻译才能理解,所以执⾏效率低。
  3.1、编译型语⾔:类似于⼀篇英⽂⼩说,运⾏时读者需要先翻译全部内容,最后告诉读者⼩说的内容。
  3.2、解释型语⾔:类似于⼀篇英⽂⼩说,运⾏时读者看⼀⾏,程序给翻译⼀⾏(同声传译)。
  从编程语⾔的执⾏效率、开发效率、跨平台性对上⾯三种语⾔进⾏排序:
    执⾏效率:机器语⾔>汇编语⾔>⾼级语⾔(编译型>解释型)
    开发效率:机器语⾔<;汇编语⾔<⾼级语⾔(编译型<;解释型) 
    跨平台性:解释型语⾔跨平台性⾼,机器语⾔跨平台性低
  4、混合型语⾔:
    Java是⼀类特殊的编程语⾔,Java程序也需要编译,但是却没有直接编译为机器语⾔,⽽是编译为字节码,然后在Java虚拟机上以解释⽅式执⾏字节码