首页 > 编程语言 >python的解释器

python的解释器

时间:2022-09-05 14:35:14浏览次数:60  
标签:解释器 字节 python 代码 Python 执行

什么是Python解释器?

1.python解释器是什么?
计算机的大脑是CPU, 中文名叫中央处理器,它仍然不能直接处理 Python 语言。CPU 只能直接处理机器指令语言,那是一种由0和1数字组成的语言,这是一种我们人很难直接写出来的语言。所以,我们需要一个翻译,把Python语言翻译成 计算机CPU 能听懂的机器指令语言,这样计算机才能按照 我们的Python程序的要求去做事。.py结尾的文件需要解释器去运行执行。

2.python解释器的构成及其各部分功能
解释器由一个编译器和一个虚拟机构成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码。
所以,解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而是中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码

3.执行过程原理
1.执行 python XX.py 后,将会启动 Python 的解释器
2.python解释器的编译器会将.py源文件编译(解释)成字节码生成PyCodeObject字节码对象存放在内存中。
3.python解释器的虚拟机将执行内存中的字节码对象转化为机器语言,虚拟机与操作系统交互,使机器语言在机器硬件上运行。
4.运行结束后python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

Python解释器执行程序的三个阶段,例如执行(python3 D:\test.py)
第一步:先启动python3解释器
第二步:Python3解释器就像一个文本编辑器一样将文件python3 D:\test.py从硬盘读入内存
第三步:Python3解释器解释执行文件代码
只有第三阶段才识别python的语法

4.python解释器的种类
1.Cpython
官方下载的python2.7均为Cpython。Cpython是用C语言开发的,因此得名
2.Ipython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
3.PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点
4.Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
5.Ironpython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码
————————————————
版权声明:本文为CSDN博主「爱学习的Q」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43422340/article/details/114316820

标签:解释器,字节,python,代码,Python,执行
From: https://www.cnblogs.com/renjie1105/p/16658009.html

相关文章

  • Python 实现一行输入多个数字(用空格隔开)。python之input()函数的使用——在终端输入
    python之input()函数的使用——在终端输入想要的值,小白也能学会的python之路-腾讯云开发者社区-腾讯云(tencent.com) Python实现一行输入多个数字(用空格隔开)-腾......
  • python 生成器与迭代器
    生成器生成器:节省空间#generator生成器f=[iforiinrange(1,1001)]#列表f=(iforiinrange(1,1001))#生成器在创建列表是,会在内存中全部创建出来,......
  • 解决python命令行报错问题
    解决Python报错Failedcallingsys.__interactivehook__报错截图可以看到主要的报错信息File"D:\Python\Anaconda3\lib\site-packages\pyreadline\lineeditor\histo......
  • Python列表、元祖、字典查询速度对比
    先比较列表和字典的查询速度:字典查询速度快于列表,原因是:列表是有序的数组,每个值都有自己的索引位置,查询的时候会逐步偏移查找,很浪费时间,但是内存消耗小。而字典是key,value......
  • python变量和数据类型
    1.python变量含义变量是存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。......
  • Python数据分析易错知识点归纳(五):横向对比
    五、横向对比排序#列表a.sort()#修改原列表,返回值为None!!!!!这里很容易出错sorted(a)#生成新的列表#嵌套列表的排序(若是对字典排序,需先用list()转成列表形......
  • Python数据分析易错知识点归纳(三):Pandas
    三、pandas不带括号的基本属性df.indexdf.columns 注意可以直接赋值,如:df.columns=['A','B','C']df.valuesdf.shape返回元组df.size总个数df.dtypes#......
  • Python数据分析易错知识点归纳(四):Matplotlib
    四、matplotlib显示中文标签plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签不显示坐标轴刻度plt.xticks(())plt.yticks(())双Y图'''次坐标......
  • 如何使用 Python 翻译 YouTube 上的视频
    如何使用Python翻译YouTube上的视频Photoby诺德伍德主题on不飞溅大家好,今天我们将构建一个有趣的应用程序Python将音频语言从YouTube进入另一个语.这......
  • Python 简介 #2。课
    Python简介—第2课print("大家好!")大家好!我们已经离开了数据科学训练营的第二周。在本课中,我们快速介绍了数据科学项目中经常使用的Python语言。我将尝试为您......