编译器是什么?

计算机只能识别0和1这种机器语言,但是程序员在开发的时候可以使用很多种语言,比如C语言,python等,所以我们用不同语言开发出来的程序计算机又是如何识别和运行的呢?关键就是使用不同语言开发出来的程序如果想要执行,那么最终只有变成机器语言才能执行,怎么变成机器语言呢?我们就需要找一个翻译,这个翻译需要把我们编写的代码翻译成机器能够识别的代码,这个翻译的专业名称就是编译器。用大白话来讲不同的编译器就是需要把不同的语言翻译成机器能够识别的机器语言,这就是编译器的作用。

解释器是什么?

根据编译器对源代码翻译的方式不同,编译器分成两种类型,一种是任然叫编译器,而另外一种是叫解释器,同时使用编译器编译的语言又称为编译型语言,而使用解释器解释的语言通常称为解释型语言。

什么是编译性语言?

所谓编译性语言最典型的代表就是C语言,C+语言都叫编译型语言,编译型语言是如何工作的?C语言或者C++程序在自己的开发环境内来编写程序,当程序开发完成之后,程序员就把开发完成之后的源代码统一交给编译器,编译器对所有源代码进行翻译,翻译成机器语言并且最终保存成一个可执行文件,当我们需要执行这个文件的时候,在Windows下最常用的操作就是双击这个可执行文件的图标,就可以把这个文件交给CPU去执行了,这样就是编译性语言的特点,(即程序员在自己的开发环境内开发程序,开发完成后,统一交给编译器,编译器统一进行翻译,并且最终生成一个独立的可执行文件,用户在需要的时候就可以执行可执行文件,看到最终的效果)这就是编译型语言的特点。

什么是解释性语言?

解释性语言的特点,我们现在学习的Python语言就是解释型语言,解释性语言在开发的时候跟编译型语言并没有太大的区别,程序员仍然是在自己的开发环境内来编写代码,假设我们现在写了3行代码,这三行代码是怎么运行的呢?要想运行解释型语言,我们就要把这个源程序丢给解释器,解释器拿到源程序之后,会按照从上向下的方式逐一读取代码(此处注意解释器是一行一行来翻译的),(解释器首先读出第一行代码,读出后就立刻翻译成机器码翻译完成之后又丢给CPU去执行,CPU在执行的过程中,解释器再读取第二行代码进行翻译,翻译完成之后再交给CPU去执行,然后依次类推从上到下,依次读取每一行代码,读取一行翻译一行,翻译一行执行一行,这个就是解释型语言的特点)

两者对比:

1、编译型语言是统一编译,一次性执行;而解释型语言是一行一行代码进行翻译,翻译一行执行一行;从执行速度来考虑是编译型语言执行速度快还是解释性语言呢?答:编译型语言执行速度快,因为最终生成的可执行文件中就是硬件识别的机器语言,再执行这个文件的时候,没有任何翻译的动作,CPU呢可以很快的执行不需要任何的记录;而解释型语言不同,解释型语言在执行的时候必须是翻译一行执行一行,从这个角度来看解释性语言的执行速度就相对慢一些,这个是速度方便的对比。

2、我们在选择一门开发语言的时候,还有另外一个要考虑的因素就是跨平台,所谓跨平台就是我们开发完成的程序既可以在Windows上运行,也可以在linux上运行,还可以在mac上运行,一次编写在任何一个平台上都可以运行,这种方式就叫做跨平台;下面从跨平台的角度上思考一下编译性语言和解释性语言,如果我们使用的程序是在windows平台上编译的程序,那么最终生成的文件只能在windows上运行,他并不能在linux上运行也不能在mac上运行,这个是编译型语言的特点,(如果我们使用了某一个操作系统的编译器,那么这个编译器最终生成的可执行文件最后只能在这个操作系统上运行,而不能在其他操作系统上运行,因为真正负责和硬件打交道的是由操作系统来负责的);解释型语言呢?程序员任然按照习惯的方式来编写代码就可以,程序编写完成之后如果想要执行性呢,如果是windows,我们就在windows上安装一套windows的解释器,如果想在linux上执行呢?我们就在linux上安装一套linux的解释器,对应mac同样如此,即在不同的操作系统上安装不同的解释器,源代码写好之后我们就丢给解释器去执行,由解释器进行翻译和执行,现在我们既然在每一个操作系统上都安装了解释器,那源代码就不需要修改了,这个就是解释型语言在跨平台上的优势,一句话来说就是程序员只需要把注意力专注在源代码的编写上就可以,至于程序的执行是解释器的工作,只需要在不同的操作系统中安装不同的解释器,同一份代码就可以在不同的系统中快乐的执行了。

PS:我们开发完成的源程序要想执行就必须找一个翻译,编译型语言要找的翻译叫做编译器,解释型语言要找的翻译叫做就解释器。

--------------------------------------------------python

1、执行Python程序的三种方式:

解释器:python/python3(就是在终端中直接使用python的解释器,加载一个python的源程序就可以了,)(主流的python解释器版本有python和python3.0)

交互式:ipython(同样是在终端中使用python的解释器,以交互式的方式开发并且执行python程序,在使用交互式来执行python程序的时候,我们可以使用python的解释器也可以使用另外一种非常方便的交互式软件,叫做ipython)(终端执行命令就是python  1.py)

集成开发环境:pycharm(解释器和交互式都是在终端中来执行python程序的,这两种方式在使用起来并不是很方便,如果使用集成开发环境,我们就可以以图形界面的方式快乐的编写代码)

2、python源程序的基本概念

python源程序就是一个特殊格式的文本文件(注意python的源程序他只是一个文本文件而已,这就意味着如果要编写python的源程序,我们随便使用一个文本编辑软件就可以),可以使用任意文本编辑软件做python的开发。

python程序的文件扩展名通常都是.py。

第一种python源程序执行方式:

第二种python源程序执行方式

第3种python源程序执行方式IDE内置了python的编译器/解释器,编写完成代码之后就可以直接让python解释器来解释我们编写完成的代码,不需要再切换到终端中去用python解释器运行程序了。

-----------------------------第3种方式执行python代码,使用PyCharm

执行一次之后右上角的按钮才会变绿。

启动pycharm的流程:

(1)下载完成后,首先通过tar命令解压缩包。(但是这个文件是保存在ysh用户的家目录的下载目录下,linux是一个多用户操作系统,如果我们把pycharm的所有程序文件都保存在python用户的家目录下,就意味着其他用户就没有办法使用了,那如何让其他用户使用呢?在我们启用最新版本的pycharm之前还需要额外做一件事情,就是把解压缩的目录移动到根目录的opt目录下)

(2)使用mv终端命令(因为我们现在要以超级用户的身份把刚刚解压下来的目录移动到根目录下的opt目录下,所以要使用sudo;因为默认的标准用户只能在自己的家目录里边活动,如果我们想在其他目录活动,应该以sudo以超级用户身份来做这件事情)

(3)要想启动pycharm,我们需要切换到刚刚移动的目录下面的bin目录,在这个bin目录下有一个.pycharm.sh的文件。

(4)我们直接执行这个.pycharm.sh文件就可以启动pycharm了。(./pycharm.sh(解读:.表示当前目录,/表示当前目录下的,))

就等着启动就行了。(如果你有之前的安装版本正在打开,最好是先关闭掉,然后他会提示把之前的安装版本的内容加载进来,点击同意加载即可。)安装完成后需要等待右下角的进度条安装完成才能完全开始使用。

如果要操作家目录之外的目录,我们都要以root身份来执行。

程序执行的原理:

内存和硬盘都是负责存储数据的,但是在存储数据的时候有非常大的差异。CPU是负责干活的,内存是负责临时存储数据的,硬盘是负责永久存储数据的,但是硬盘的读取速度慢。

在计算机中真正负责程序执行的是哪一个硬件设备?答:是CPU。

安装的程序在没有执行之前都是保存在硬盘上的。一个可以执行的程序内部是保存的什么内容呢?保存的是CPU可以识别的机器语言(计算机的硬件只能识别0101这种机器语言,而一个程序要执行必须必须是cpu能够识别的0101这种机器语言,CPU才能够直接执行,因此没有执行的程序内部保存的就是0101这种机器语言,也可以叫做程序代码)。

箭头表示python这个文件只是一个软连接,这个软连接指向的真正文件是python2.7。

随笔2:关于linux和python相关推荐

  1. python可以在linux运行_在linux运行python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! linux下编译安装python3与python2共存linux下默认系统自带p ...

  2. 在linux下python爬虫进程发生异常时自动重启直至正常结束的方法

    在linux下python爬虫进程发生异常时自动重启直至正常结束的方法 参考文章: (1)在linux下python爬虫进程发生异常时自动重启直至正常结束的方法 (2)https://www.cnbl ...

  3. 我的名片能运行Linux和Python,还能玩2048小游戏,成本只要20元

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 猜猜它是什么?印着姓名.职位和邮箱,看起来是个名片.可是右下角有芯片,看起来又像是个PCB电路板. 其实它是一台超迷你的ARM计算机,不仅 ...

  4. 我在学python-我在大学毕业后学习Linux、python的一些经验

    我在大学毕业后学习Linux.python的一些经验 掐指一算,自己已经毕业快半年了,这半年莫名其妙进外包圈子溜达了一圈,有幸退的早还是正常干一些事情吧,外包终究不是太适合刚入社会的毕业生,今天想把自 ...

  5. linux下载哪个python版本-修改linux下python的默认版本

    linux下python版本默认为python2.7,下面将通过操作在linux系统下修改python的默认版本. 本文linux系统使用的是ubuntu19. 操作: 1.在shell下输入pyth ...

  6. 我在大学毕业后学习Linux、python的一些经验

    我在大学毕业后学习Linux.python的一些经验 掐指一算,自己已经毕业快半年了,这半年莫名其妙进外包圈子溜达了一圈,有幸退的早还是正常干一些事情吧,外包终究不是太适合刚入社会的毕业生,今天想把自 ...

  7. Linux下Python脚本自启动与定时任务详解

    这篇文章主要给大家介绍了关于Linux下Python脚本自启动与定时任务的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值. 前言 最近同事问了一个关于P ...

  8. linux查看python pip 安装包列表和安装路径

    查看linux下python已经安装的第三方库列表 python list 查看python pip 包的安装路径 pip show six PS:有定制开发.答疑需求,可以QQ联系:17620165 ...

  9. linux下python安装opencv库_Linux下怎么配置python和opencv

    匿名用户 1级 2017-06-20 回答 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支 ...

  10. python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发

    ByToradex秦海 1).简介 Python 编程语言因其极强的可读性.可移植.易于维护,以及丰富的第三方扩展组件,如数据库.数学计算.图形,甚至机器视觉.人工智能.深度学习框架都提供Python ...

最新文章

  1. 超全汇总!机器学习常用术语词汇表
  2. K-BERT | 基于知识图谱的语言表示模型
  3. Spring的控制反转(IOC)和依赖注入(DI)具体解释
  4. python __main__ __name__ __file__
  5. Windows平台手动卸载Oracle Server【完整+干净】
  6. 在libevent中服务模型
  7. java实现复制文件目录及文件到指定路径下
  8. 计算机更新过后cad,升级windows10系统后cad无法打开的两种解决方法
  9. Android OpenCV竖屏处理策略和底层代码修改
  10. mysql 索引失效情况总结
  11. Centos7 搭建 Svn+ReviewBoard
  12. 十年互联网 十个风云人物
  13. 经典策略之一文读懂网格交易
  14. 计算机基本办公用法哪里学,使用电脑办公必须学会的七大办公技巧!
  15. 利用STM32F103最小系统做C2接口离线烧录器
  16. Python全栈开发【第一篇】:初识Python
  17. 关于最近研究的绕过某校园网认证登录-DNS隧道-dns2tcp
  18. ESP8266物联网开发小板开箱
  19. 基于ARM架构下的PI数据库远程存储
  20. EasyExcel 快速入门,20分钟搞定

热门文章

  1. Android中出现内存泄露的原因
  2. 2021年大数据Hadoop(三十):Hadoop3.x的介绍
  3. 2021年大数据常用语言Scala(二):Scala开发环境安装
  4. Python机器学习:训练Tesseract
  5. The method setButton(int, CharSequence, Message) in the type AlertDialog is not applicable for the a
  6. idea(3)-jetty配置
  7. canvas绘制的文字如何换行
  8. Jupyter Notebook 远程访问设置方法
  9. 如何让图片开口说话 3DMeNow教程
  10. Mysql中的DCL