解释器

对于电脑的CPU,虽然功能强大,但是仍然不能处理Python语言,只能处理机器指令语言。所以需要一个翻译,把我们所用的语言翻译成CPU能执行的代码。
其实我们安装JAVA也好,C也好,Python也罢,主要就是安装的这个编程语言的“编译器”。
编译器/解释器:高级语言与机器之间的翻译官

python解释器

Python语法简单明了,贴近人类的使用习惯。作为一种动态解释性语言,让人们在写代码的时候可以更多的关注业务逻辑细节,而不需要花太多精力去关注数据类型定义、程序运行效率等!
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。
解释器包括编译过程,只是这个编译过程没有生成目标代码。Python解释器由编译器和虚拟机构成,编译器将源代码转换成字节码,然后再通过Python虚拟机来逐行执行这些字节码。

python程序执行过程:
1、执行 .py 文件,就会启动python解释器
2、编译器将源文件解释成字节码
3、虚拟机将字节码转化成机器语言,与操作系统交互
4、程序运行结束后,将字节码存到pyc文件,便于后续直接执行

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

CPython
顾名思义,CPython 就是用 C 语言开发的了,是官方标准实现,拥有良好的生态,所以应用也就最为广泛了。
当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython
而 IPython 是在 CPython 的基础之上在交互式方面得到增强的解释器。
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy
PyPy 是 Python 语言(2.7.13和3.5.3)的一种快速、兼容的替代实现(http://pypy.org/),以速度快著称。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

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

IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

python的运行机制


都说解释器慢,Python也有想办法提高一下运行速度的,那就是使用pyc文件。这点参考了JAVA的字节码做法,但并不完全类同。
我们编写的代码一般都会保存在以.py为后缀的文件中。在执行程序时,解释器逐行读取源代码并逐行解释运行。每执行一次,就重复一次这个过程,这其中耗费了大量的重复性的解释工作。为了减少这一重复性的解释工作,Python引入了pyc文件,pyc文件是将py文件的解释结果保存下来的文件,这样,下次再运行的时候就不用再解释了,直接使用pyc文件就可以了,这无疑大大提高了程序运行速度。

python解释器是什么?相关推荐

  1. PyCharm 配置远程python解释器和在本地修改服务器代码

    使用场景 先说说自己的使用场景,我是在什么情况下,需要将IDE配置成这样的环境来方便我的工作. 首先,我需要在本地机子上写python代码,但是因为是机器学习相关的一些代码,有时候本机跑可能会很慢,或 ...

  2. python解释器环境中、用于表示上一次_大工20秋《数据挖掘》在线作业3 【标准答案】...

    可做奥鹏全部院校作业论文!答案请添加qq:599792222 或 微信:1095258436 大工20秋<数据挖掘>在线作业3 1.[单选题] 以下哪一种数据类型元素之间是无序的,相同元素 ...

  3. Jupyter notebook 指定 Python 解释器 anaconda

    Jupyter notebook 指定 Python 解释器 anaconda 打开jupyter notebook新建一个文件,发现只有一个默认的解释器,我们在指定的虚拟环境中安装了我们想要的包后是 ...

  4. 查看python解释器安装路径

    查看python解释器安装路径 在Windows下或Linux下的pycharm中进行查看: 示例代码: import sys print(sys.executable) 运行效果: 在Linux下用 ...

  5. python解释器的功能_python的解释器是什么?

    python解释器是解释python脚本执行的程序.编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执行.py文件. python解释器种 ...

  6. Python之父考虑重构Python解释器

    7月22日,Python之父Guido在Medium上发表了他的第一篇博文<PEG Parser>. 在该文中,Guido说他正在考虑使用PEG Parser代替现有的类LL(1) Par ...

  7. 编程语言介绍、python解释器执行代码的过程

    内容大纲 1.编程语言介绍 (*****) 2.Python解释器 (****) 3.执行Python程序的两种方式(****) 4.变量 (*****) 一.编程语言介绍 (*****) 计算机语言 ...

  8. pycharm中python解释器的配置

    在pycharm中写python代码时出现了如下错误:No Python interpreter selected. 原来是没有配置python解释器,如果已安装python解释器,只要配置一下就好了 ...

  9. python运行文件后缀_Python程序存储成以.py为扩展名的程序文件用Python解释器执行。(4.5分)_学小易找答案...

    [简答题]简述助跑的两种起动方式? [填空题]在跳远技术的发展过程中,曾经出现过 . . .等3中姿势. [判断题]一般情况下,Python语言中使用符号#表示程序中的注释.(4.5分) [论述题]请 ...

  10. 有汇编功能的python编译器_7.12 计算机基础理念与python解释器编译器安装使用

    7.12学习与收获 在7.12这一天,我学习了计算机的语言,编程方面的基本理念,以及python的一些基本语法与应用. 计算机是什么 计算机是一种满足人类各种工作与娱乐需求的工具. 计算机发展史 19 ...

最新文章

  1. 全局变量:global与$GLOBALS的区别和使用
  2. module 'tensorflow' has no attribute 'Session'
  3. 关于 Visual Studio 2010
  4. [YTU]_1046 ( 输入10个数字,然后逆序输出)
  5. RNN代码解释pytorch
  6. 北京内推 | 华为CloudAI机器视觉产品部招聘计算机视觉见习研究员
  7. emacs c语言 自动补全,Emacs 与 C/C++ 代码自动补全
  8. spring 集成 spring cloud config 的相关知识
  9. erp从内部集成起步第3版下载_SCM与ERP的区别在哪里呢?
  10. Android连接管理的评分机制(WIFI,Ethernet,BT,移动数据
  11. cmd命令将web项目打成jar包_首发!JDK14之jpackage命令尝鲜
  12. 一种在BIOS中嵌入应用程序的方法及实现
  13. 基于Cocos2d-x学习OpenGL ES 2.0之多纹理
  14. 去中心化身份 DID( Decentralized Identifiers)
  15. Java基于SpringBoot的牛客网社区项目实现详解(上)
  16. windows无法连接到某个wifi_电脑提示Windows无法连接到这个网络/无线网络的解决方法...
  17. 【常系数线性递推】51nod1538 一道难题
  18. matlab2019b重装导致mjs安装失败问题解决
  19. 傅里叶变换经滤波处理及傅里叶逆变换
  20. office2016、visio2016和project2016安装指针

热门文章

  1. 【精益生产】高效生产,需要这样的精益生产线!
  2. 计算机二级vb弹出式菜单,等考二级VB:用VB、VFP设计右键弹出式菜单
  3. 如何对7-ZIP压缩包加密?
  4. 算法和数据结构解析-8 : 栈和队列相关问题
  5. 电子计算机的发明和应用,空间技术生物工程3核心电子计算机的发明和广泛应用.PPT...
  6. matlab声呐模拟,基于DDS技术的声纳信号模拟器的基本原理
  7. 记关于SaaS平台中应对多租户模式的设计
  8. 基于JAVA电影院购票系统计算机毕业设计源码+系统+lw文档+部署
  9. Windows10家庭版安装MySQL(无法启动服务问题和卸载教程)
  10. [kuangbin带你飞]专题1 简单搜索 J - Fire! UVA - 11624