目录
●enumerate(iterator start=numb)
●Python理解——进阶
底层不用去理解,我们学高级语言,就是为了忽略底层逻辑。所以我们要学号高级语言,而不是对底层深究。
python解释器 | |
CPython解释器 |
根目录下的python.exe就是CPython解释器的可执行文件,标准解释器 C语言编写的、交互式、因为C语言很精简,所以python只有97KB 包含一个编译器、一个虚拟机(可以这样理解,都是解释器的一部分) 编译器负责将代码转换成字节码(.pyc文件),虚拟机负责后续解释成机器码执行 在 Python 安装目录下,还包含了许多其他的文件和文件夹,其中一些比较重要的文件和文件夹包括: Lib 文件夹:Python 标准库的源代码和编译后的字节码文件。 include 文件夹:Python C API 的头文件。DLLs 文件夹:Python 解释器所需的动态链接库文件。 Scripts 文件夹:Python 脚本和命令行工具的入口脚本。 python.exe 文件:Python 解释器的可执行文件。 pythonw.exe 文件:Python 解释器的可执行文件,用于运行 GUI 应用程序。 python3.dll 文件:Python 解释器所需的动态链接库文件。 python39.dll 文件:Python 解释器所需的动态链接库文件,用于 Python 3.9。 python39.zip 文件:Python 标准库的压缩文件,包含了所有标准库模块的源代码和字节码文件。 |
IPython | IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。 CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。 |
PyPy | 使用RPython语言编写。RPython:python语言的变种。 PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显着提高Python代码的执行速度。 绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。 |
Jython | Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。 |
IronPython | 和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。 |
解释型语言和编译型语言 | |
解释型语言 | 执行效率低:程序不需要编译,程序在运行时才翻译成机器码,每执行一次就要翻译一次,不可脱离语言环境独立运行(需要虚拟机) 跨平台性好:依赖于解释器,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护 |
过程 | 源代码->汇编代码->机器码->CPU执行 |
代表语言 | Python、JavaScript、PHP、Shell、Ruby、MATLAB、Perl |
适用范围 | 一些网页脚本,服务器脚本以及辅助开发接口之类的对速度要求不高,对不同系统兼容性有一定要求的程序通常使用解释型语言 |
编译型语言 | 执行效率高:只须编译一次就可以把源代码编译成机器码,后面的执行无须重新编译,直接使用之前的编译结果,可以脱离语言环境独立运行(不需要虚拟机) 跨平台性差:依赖于编译器,编译之后如果需要修改就要将整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件 |
过程 | 源代码->字节码->解释器->机器码->CPU执行 |
代表语言 | C、C++、Golang、Pascal、Object-C、Swift |
适用范围 | 编译型语言由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等软件时一般采用它 |
●一般,编译型语言的运行效率比解释型语言更高,但是不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能使解释型语言的性能超过编译型语言 ●Java语言应是编译型-解释型语言,因为其同时具备编译型和解释型两种特性:Java文件先编译成与平台无关的.class字节码文件,然后.class字节码文件既可以在Windows平台上的Java虚拟机(JVM)上进行解释运行,也可以在Linux平台上的JVM上解释运行。而JVM的翻译过程是解释型的,JVM从.class字节码文件中读出一条指令,翻译一条指令,然后执行一条指令,这个过程就称为Java的解释执行。C#与Java类似 ●当我们说“下载一个程序(软件)”时,不同类型的语言有不同的含义 对于编译型语言,我们下载到的是可执行文件,源代码被作者保留,所以编译型语言的程序一般是闭源的 对于解释型语言,我们下载到的是所有的源代码,因为作者不给源代码就没法运行,所以解释型语言的程序一般是开源的 ●我们所说的解释型语言能跨平台,是指源代码跨平台,而不是解释器跨平台。解释器用来将源代码转换成字节码,它就是一个可执行程序,是绝对不能跨平台的。在不同的平台下,解释器会将相同的源代码转换成不同的机器码,解释器帮助我们屏蔽了不同平台之间的差异 |
|
Python是“胶水语言”的优势 | |
1、并非只有python是胶水语言,还有Lua、Julia、Perl、Erlang、Shell,VBscript、AppleScript、JavaScript 2、底层调用C/c++,速度快 3、高级语言。。。python的优势 4、开源、扩展性强 python调用python,使用import或者from...import... |
Python环境 | |