python解释器

python是一种解释型语言;

什么是解释型语言,首先了解编程语言分为编译型语言和解释型语言,这两者主要区别在于这些编程语言变化成为机器能够识别的机器码的过程;

编译型语言(C/C++、pascal等)是在运行之前就需使用编译器将用该语言写好的程序直接编译成为机器码,形成机器可以直接执行的文件如.EXE文件,因为执行的是机器码所以运行速度较快,但是机器码与程序所在系统有关,相同程序在不同系统上编译生成的机器码不能通用,所以跨平台性能不好;

翻译型语言(JAVA、Python、perl、Ruby等)是在运行程序的时候才翻译成机器码,因此每次运行都要做重复的事情,效率相对编译型语言就低了,但是因为不固定形成机器码,就避免了与所在系统环境的绝对联系,降低了耦合度,结果是跨平台性能更好。

其实考虑这两种语言,最终都是执行机器码,只是说什么时候生成机器码,这一问题直接与运行速度和跨平台性挂钩,这两个性能是相互矛盾的,追求运行速度,就想直接运行机器码(编译型)导致跨平台性能不好;追求跨平台性就不让你直接生成机器码,用啥系统都一样,运行的时候再翻译生成机器码,跨平台性好了却做了重复工作,降低了运行效率。

说回到python,作为一种解释型语言,需要解释器来将其翻译成机器码,这些解释器有很多种,各有特点。

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

猜你喜欢

转载自www.cnblogs.com/xuhaojun/p/9160610.html