有很多入门学习python的同学都没有搞清python解释器是怎么回事,所以今天在这里追根溯源的解释一下。

计算机编程语言

从计算机编程语言说起,它主要分为三类:机器语言、汇编语言、高级语言。

机器语言是一种计算机可以直接识别并执行的二进制指令集。由于其可以直接交给CPU执行,所以是最快的,但是它需要我们记住每一个指令的代码与对应的动作,想想我们写代码的时候是操作一串串的01序列,难度得有多大。

为了克服机器语言的缺点,人们就用一些助记符来代替机器码,也就是使用一些与实际意义相近的缩略词来代替动作,例如ADD、SUB、MOV等,这就有了很大的进步,可以方便的编写,但是它仍然是对机器进行操作的,相较于高级程序语言更接近于底层,所以汇编语言是低级语言。

不论是机器语言还是汇编语言都是面向硬件的操作,它们对于机器是依赖的,不同的设备对应的编写方式可能不同。然而,高级语言是面向用户的语言,我们只要编写好程序内容,通过编译或者解释程序,就可以对机器进行操作。这里提到的编译或者解释程序就是一个翻译工具,将人类看懂的语言翻译成机器能看懂的东西。

解释型语言VS编译型语言

解释型语言和编译型语言的共同目标都是为了将我们所认识的语句(例如循环、判断)转成二进制代码,再交给计算机执行。

二者之间最明显的区别,编译型语言就是指在我们把程序写完之后,把代码完全翻译成二进制文件,通过执行该二进制文件来执行程序;而解释型语言没有转二进制文件的过程,而是什么时候需要,什么时候编译。有人说,这算什么区别呢?还没有说完,编译型语言生成二进制文件后,那这个二进制文件就可以直接执行,而解释型语言需要随时带着这个解释器,必须随叫随到。因此、产生了各种方面的差异,以下是我所理解的较为明显的差异。

编译型语言

解释型语言

运行速度

快(二进制文件)

慢(边解释边执行)

可移植性(跨平台)

差(CPU指令系统变则执行出错)

好(随身带着解释器)

更新

重新编译

仅解释更新的内容

安全

好(无需提供源码)

差(连同源码一起交付)

Python解释器

有了上面的描述,想必知道解释器是怎么回事了。解释器其实也包括编译过程,只是这个编译过程没有生成目标代码。Python解释器由编译器和虚拟机构成,编译器将源代码转换成字节码,然后再通过Python虚拟机来逐行执行这些字节码。

python程序执行过程:

1、执行 .py 文件,就会启动python解释器

2、编译器将源文件解释成字节码

3、虚拟机将字节码转化成机器语言,与操作系统交互

4、程序运行结束后,将字节码存到pyc文件,便于后续直接执行

python解释器有很多种:

CPython:C语言开发,使用最广,默认的解释器

IPython:基于CPython之上的交互式解释器

PyPy:采用JIT技术,对python代码进行动态编译,追求执行速度

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

IronPython:同理Jython,运行在 .Net 平台上

虽说有那么多种解释器,但是我们常用的还是CPython,而对于Java、.Net平台来说,更常用网络调用来交互。我个人来说,平时测试经常使用IPython,很方便。

python解释器有多大_python解释器到底是什么?相关推荐

  1. python解释器可以使用什么命令_python解释器用什么写的

    python解释器是用什么语言实现的 用的是python解释器. 首先win+R 运行cmd,如果 python version不报错,则表明环境正确 python file.name运行即可我的故里 ...

  2. python解释器的工作原理_python解释器详解

    Python是一门编程语言,但是从目前的实现来讲,Python也是一个名为解释器的软件包,解释器是一种让其他程序运行起来的程序,当你编写了一段Python程序,Python解释器将读取程序,并且按照其 ...

  3. python绘制梅尔谱图_Python入门到底有多简单(三):填充数据

    目录 1.加载包和数据读取2.数据填充2.1 用数值或字符串填充2.2 用字典填充2.3 method参数填充2.3.1 用前面的值填充2.3.2 用后面的值填充2.3.3 limit限制填充的个数2 ...

  4. python json文件太大_python - python json.dump创建的文件太大 - 堆栈内存溢出

    所以我有这个CSV文件,大小为380 MB左右. 我为此创建了一个空数据结构:{ID1 {day1:[[flow,hour1],[flow,hour2] ... [flow,hour23]],day2 ...

  5. python读txt很大_Python读写txt文件

    python读写txt文件 准备原始txt数据 3.14159265358979323846264338327950288419716939937510582097494459230781640628 ...

  6. python释放变量内存_python解释器安装,运行python程序的方式及程序运行的步骤,变量与自动的内存管理...

    一.python解释器安装 ps: 注意设置环境变量(文件是操作系统的概念,操作系统优先在当前文件夹找,找不到就到环境变量path找) python解释器不兼容 解释器下载官网:http://pyth ...

  7. python交互式解释器下载_Python解释器

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 由于整个Python语言从规范到解释器都是开源的 ...

  8. python解释器有哪几种_Python解释器种类以及特点?

    python解释器是什么? 英语:Interpreter,又译为直译器,是一种电脑程序能够把高级编程语言一行一行直接转译运行.解释器不会一次把整个程序转译出来,只像一位"中间人", ...

  9. python通过解释器来编译_python 解释器与编译过程,代码的搬运工

    虚拟机工作前: python 在运行.py 文件的时候,先进行编译字节码的形式来进行存在,字节码的存在是为了优化速度. 字节码的更改是通过时间戳来进行.字节码发送的python 虚拟机之中,虚拟机是p ...

最新文章

  1. 关于工程教育和工程教育专业认证工作的思考——吴岩司长在工程教育高峰论坛上的讲话
  2. 计算机连接拒绝访问,Win10系统下Windows无法连接到打印机,拒绝访问的解决办法...
  3. raft算法_Raft算法与实现
  4. java this关键字表示当前对象,可以访问属性、方法、构造方法
  5. java通过url下载缓存_java url 下载
  6. 重定位----操作系统做的事情
  7. StarUml:Exception EOleSysError in module StarUML.ex
  8. 360浏览器访问跨域问题
  9. pythonmt4通讯swot矩阵_swot分析矩阵范例(各部门)
  10. 208个地级市和31个省市城乡泰尔指数(2010-2019年)
  11. SOLIDWORKS软件转Dwg格式教程
  12. 【MOS管知识汇总】分类、区分、寄生二极管、导通条件、开关电路、串联电阻
  13. 资产管理计划份额转让研究(大资管长文)
  14. FlashFXP绿色版
  15. Windows Server - 如何查看机器的开机/关机时间
  16. unity实现简单巡逻兵
  17. 直接修改Jar包class文件方法
  18. 图片截图识别文字怎么操作?这两个方法不要错过
  19. matlab 李萨如_基于MATLAB的李萨如图形研究
  20. 数据科学、管理科学系课程教学课件——FineReport实验指导书节选====明细表、分组表、交叉表

热门文章

  1. Eclipse插件安装方式
  2. php限制注册频率,php如何限制某个ip提交的次数
  3. linux mysql df_Linux基础:df命令总结
  4. 深度linux安装make,linux下安装python3完整教程(依赖环境gcc,make,cmake,configure等详细解释)...
  5. java方法参数Bundle,Java ResourceBundle keySet()方法及示例
  6. linux chattr修改文件属性,linux chattr(改变文件属性)
  7. 极间电容matlab,电子仿真虚拟实验室
  8. python的调试器_玩转Python调试器
  9. linux java weblogic,Linux java 安装问题
  10. python嵌套html开发gui_如何在Python Tkinter GUI中嵌入Cartopy?