.py是什么文件?

“.py”文件是python的脚本文件。

Python在执行时,首先会将“.py”文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。

这种机制的基本思想跟Java,.NET是一致的。

然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。

或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。

1.png

python的优点:

2、易学:Python极其容易上手,因为Python有极其简单的说明文档。

3、速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。

4、免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

5、高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

6、可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

7、解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。

运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

8、面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

9、可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

10、可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

11、丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

12、规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。


推荐文章
Java使用自定义包

包的声明和使用非常简单,在了解基本语法之后,下面通过一个案例演示在Java程序中声明包,以及不同包之间类的使用。 1)创建一个名为com.dao的包。 2)向com.dao包中添加一个Studen

uos是什么操作系统?

统一操作系统UOS是由包括中国电子集团(CEC)、武汉深之度科技有限公司、南京诚迈科技、中兴新支点在内的多家国内操作系统核心企业自愿发起“UOS(unityoperatingsystem)统一操作系统

用户选择云计算时的首要考虑因素是什么

用户选择云计算时的首要考虑因素是安全性。云计算是分布式计算的一种,指的是通过网络云将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。

Go语言依赖管理

早期的Go语言被很多开发者所吐槽的一个问题就是没有依赖包的管理,不过随着版本的不断更迭,Go语言依赖管理方面也在不断的完善。 为什么需要依赖管理 最初的时候Go语言所依赖的所有的第三方包都放在GOP

PHP比较运算符

比较运算符就是对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回true;如果为假,则返回false。 PHP中的比较运算符如下表所示: 例子 名称 描述 $a=

缓存是什么意思?

缓存是指储存临时数据,通俗来讲,浏览器刚刚浏览过的内容会被存放起来,这就是缓存;它同时也指一个具有缓冲作用的存储器,可以进行高速数据交换。在工作的时候,CPU会先选择在缓存当中读取一个数据,找到后CP

直接连接(DAS)存储、网络连接(NAS)存储和存储区域网络(SAN)

计算机访问磁盘存储有3种方式: 通过I/O端口(或直接连接存储(又称“直连式存储”,DAS),小系统常采用这种方式; 通过分布式文件系统的远程主机,这称为网络连接存储(NAS); 存储区域网络

wsl是啥

wsl一般是指WindowsSubsystemforLinux,是一个在Windows10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其

aWiFi是什么?

aWiFi是覆盖江苏全省的免费公用无线网络,电信/移动/联通用户均可使用。在公共场所搜索到“aWiFi”或“aWiFi-Free”等无线网络,通过简单的认证流程即可使用。aWiFi覆盖了江苏全省13个

Django模板标签完整攻略

前面我们用了三节的内容重点讲解了模板语言中使用频率较高到的三个标签if、for以及url。在本节我们将其余标签选择性的讲解,学习Django框架的时候,要学会抓住知识重点,这是提高学习效率的一种有效途

C++ vector的使用、创建及初始化

vector容器是包含T类型元素的序列容器,和array容器相似,不同的是vector容器的大小可以自动增长,从而可以包含任意数量的元素;因此类型参数T不再需要模板参数N。只要元素个数超出vector

dolby access是什么软件?

DolbyAccess是针对Windows10操作系统用户打造的一款杜比全景声软件,安装后就可以正常使用它可以让音响以及耳机等设备感受全景声的感觉,不过使用的前提是设备支持杜比声效。除此之外,还支持各

PHP fgetc():从文件中读取一个字符

在对某一个字符进行查找、替换时,就需要有针对性地对某个字符进行读取,在PHP中可以使用fgetc()函数实现此功能。该函数语法格式如下: fgetc(resource$handle) 其中参数$ha

快速提高前端布局效率的小技巧

在布局中,对于每块功能的DOM结构,我们一般使用一个带有wrapper类元素把它包裹起来,让代码或者网页内容更易于阅读。为此,我们一般使用wrapper或者container。在CSS中使用wrapp

LNMP一键安装过程详解

本节介绍如何利用下载好的LNMP一键安装包在Linux系统上安装LNMP环境。 解压缩一键安装包 我们把LNMP一键安装包保存在/usr/local/src/目录下,第一步仍然是解压缩一键安装包。命

gets和fgets函数及其区别,C语言gets和fgets函数详解

每当讨论gets函数时,大家不由自主地就会想起1988年的“互联网蠕虫”,它在UNIX操作系统的finger后台程序中使用一个gets调用作为它的攻击方式之一。很显然,对蠕虫病毒的实现来说,gets函

struts.xml配置文件详解

Struts2JSP /index.jsp 元素是文件的根元素,所有其他元素都放在中。 元素用于进行常量配置。 元素

学习大数据要什么基础?

在大数据的发展中,具有大数据思维的人和具有大数据创新的人是非常有价值的,这样的人才在大数据中不断的发展。在大数据方面感兴趣的人才能得到更好的发展。学习大数据需要掌握的基础有哪些呢?1、计算机基础知识。

getch()的功能是什么?

getch()是编程中所用的函数,这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!getch(

C语言扫雷小游戏演示和说明

C语言中文网提供的扫雷游戏不依赖TC环境,不依赖第三方库,可以在VC6.0、VS、CodeBlocks、DevC++编译通过。 我们提供给大家的扫雷游戏,不要求大家精通C语言,也不会涉及到指针的使用