python运行需要编译吗,Pythone不需要重复编译可以提高执行效率吗

1 , Pythone不需要重复编译可以提高执行效率吗你理解反了,python 是一门脚本语言,不需要编译 , 所以执行效率很低 。能编译成本地二进制代码(native code)的语言,如C/C++执行效率才高 。要不就是 Java 这样的执行效率介于编译和非编译之间的语言 。
2,Python如何工作Python的特色简单 Python是一种代表简单主义思想的语言 。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一 。它使你能够专注于解决问题而不是去搞明白语言本身 。易学 就如同你即将看到的一样 , Python极其容易上手 。前面已经提到了 , Python有极其简单的语法 。免费、开源 Python是FLOSS(自由/开放源码软件)之一 。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中 。FLOSS是基于一个团体分享知识的概念 。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的 。高层语言 当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节 。可移植性 由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上) 。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行 。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC!解释性 这一点需要一些解释 。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1) 。这个过程通过编译器和不同的标记、选项完成 。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行 。而Python语言写的程序不需要编译成二进制代码 。你可以直接从源代码 运行 程序 。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行 。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单 。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植 。面向对象 Python即支持面向过程的编程也支持面向对象的编程 。在 面向过程 的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的 。在 面向对象 的语言中,程序是由数据和功能组合而成的对象构建起来的 。与其他主要的语言如C++和Java相比 , Python以一种非常强大又简单的方式实现面向对象编程 。可扩展性 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开 , 你可以把你的部分程序用C或C++编写 , 然后在你的Python程序中使用它们 。可嵌入性 你可以把Python嵌入你的C/C++程序 , 从而向你的程序用户提供脚本功能 。丰富的库 Python标准库确实很庞大 。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作 。记住,只要安装了Python,所有这些功能都是可用的 。这被称作Python的“功能齐全”理念 。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等 。【python运行需要编译吗,Pythone不需要重复编译可以提高执行效率吗】
3,python 原理及用法Python解释执行原理这里的解释执行是相对于编译执行而言的 。我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言 , 经过链接器链接之后形成了二进制的可执行文件 。运行该程序的时候,就可以把二进制程序从硬盘载入到内存中并运行 。但是对于Python而言 , python源码不需要编译成二进制代码,它可以直接从源代码运行程序 。当我们运行python文件程序的时候,python解释器将源代码转换为字节码,然后再由python解释器来执行这些字节码 。这样,python就不用担心程序的编译,库的链接加载等问题了 。对于python解释语言,有以下3方面的特性:每次运行都要进行转换成字节码,然后再有虚拟机把字节码转换成机器语言,最后才能在硬件上运行 。与编译性语言相比,每次多出了编译和链接的过程,性能肯定会受到影响 。由于不用关心程序的编译和库的链接等问题 , 开发的工作也就更加轻松啦 。python代码与机器底层更远了,python程序更加易于移植 , 基本上无需改动就能在多平台上运行 。在具体计算机上实现一种语言 , 首先要确定的是表示该语言语义解释的虚拟计算机,一个关键的问题是程序执行时的基本表示是实际计算机上的机器语言还是虚拟机的机器语言 。这个问题决定了语言的实现 。根据这个问题的回答,可以将程序设计语言划分为两大类:编译型语言和解释型语言 。编译实现的语言,如:C、C++、Fortran、Pascal、Ada 。由编译型语言编写的源程序需要经过编译,汇编和链接才能输出目标代码,然后由机器执行目标代码 。目标代码是有机器指令组成,不能独立运行 , 因为源程序中可能使用了一些汇编程序不能解释引用的库函数,而库函数又不在源程序中,此时还需要链接程序完成外部引用和目标模板调用的链接任务 , 最后才能输出可执行代码 。解释型语言,解释器不产生目标机器代码,而是产生中间代码,这种中间代码与机器代码不同,中间代码的解释是由软件支持的,不能直接使用在硬件上 。该软件解释器通常会导致执行效率较低,用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的 。和编译的程序不同的是, 解释程序的任务是逐一将源代码的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行 。对于解释型语言,需要一个专门的解释器来执行该程序,每条语句只有在执行是才能被翻译,这种解释型语言每执行一次就翻译一次,因而效率低下 。Java解释器,java很特殊,java是需要编译的,但是没有直接编译成机器语言,而是编译成字节码 , 然后在Java虚拟机上用解释的方式执行字节码 。Python也使用了类似的方式,先将python编译成python字节码,然后由一个专门的python字节码解释器负责解释执行字节码 。python是一门解释语言,但是出于效率的考虑 , 提供了一种编译的方法 。编译之后就得到pyc文件,存储了字节码 。python这点和java很类似,但是java与python不同的是 , python是一个解释型的语言,所以编译字节码不是一个强制的操作 , 事实上,编译是一个自动的过程,一般不会在意它的存在 。编译成字节码可以节省加载模块的时间 , 提高效率 。除了效率之外,字节码的形式也增加了反向工程的难度,可以保护源代码 。这个只是一定程度上的保护 , 反编译还是可以的 。额,你弄本书看吧 。原理和Java差不多,都是解释执行 。一般程序都是编译成二进制 , 再由CPU执行,无法跨平台 。python和Java差不多,解释成字节码,不过比Java高级点 。假设计算机会读汉语,假如Java解释成古汉语,python就解释成现代汉语,最后由运行环境根据不同CPU执行字节码 。大致就是这么个过程 , 至于用法,问题太大,这货虽说是门脚本语言 , 但好歹也是门语言,不是一两句解释的清楚,还是看书吧 。

    推荐阅读