Python是脚本语言,简单方便,缺点是运行速度慢,不能对代码进行加密,跨平台,可以在交互式环境下执行也可以在集成环境下执行。
Python有两个版本,但是两个版本不兼容
脚本执行过程
1、Python的执行过程
在执行Python文件时,解释器会先将代码进行解释,解释后的结果就是PyCodeObject(存放在内存中),代码执行完成之后会将PyCodeObject回写到一个.pyc文件中。
Python在执行的过程中只会将import导入的文件在解释之后写到.pyc文件中,主程序中的代码在解释后是不会回写到.pyc文件的,这是因为Python在设计时认为只有import导入的文件才可能是会被再次使用的,在下次使用的时候会先检查导入的模块.py文件时候发生改变,如果没有改变就直接使用上次生成的.pyc文件,如果发生改变就是再重新生成一份.pyc文件。
验证的方式:写一个模块导入到另外一个程序文件,执行主程序文件,被导入的模块文件夹中就会生成一个.pyc文件,主程序所在的文件夹不会生成.pyc文件
程序的执行都是从主函数开始从上向下一行一行的执行。
2、解释型和编译型
Python是解释型语言,在执行的时候是通过解释器对代码进行解释之后再运行
编译型语言:计算机只能识别机器语言不能够识别高级语言,所以在执行代码的时候需要先通过编译器对代码进行编译生成机器能够识别的机器语言,然后直接执行编译后的文件,C语言就是通过编译器执行的语言
解释型语言:解释型语言不需要编译,在执行的时候通过对语句做出解释然后再执行,Python就是解释型语言
对比一下两种语言的执行过程:编译型语言在执行的时候执行的是编译过之后的文件,不需要再做出编译直接执行。解释型语言在执行文件的时候先解释然后再执行解释后的机器语言。所以相比较而言解释型语言在执行的时候速度比编译型语言慢一下。Python有很多优化过后的解释器在执行速度上有一定的改善。
也有一些高级语言是结合了编译和解释两种方式之后执行代码,Java虚拟机将Java代码通过编译器编译成字节码文件,在运行的时候通过解释器再解释成机器文件,这就是先编译后解释的过程。