编程语言整体分觉得机器语言、汇编语言、高级语言:
机器语言:计算机硬件可以直接使用的编程语言,二进制的集合,属于低级语言。
汇编语言:借助符号代替机器指令,与机器指令对应,面向计算机硬件的,容易理解和记忆,属于低级语言。
高级语言:与计算机硬件无关,其表达方式接近于所描述的问题,更易于掌握。编程
高级语言所编制的程序不能直接被计算机识别,必须通过转换才能被执行,按转换方式可将它们分为两类:
解释类:
执行方式相似于咱们平常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,所以效率比较低,并且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器),但这种方式比较灵活,能够动态地调整、修改应用程序。
编译类:
编译是指在应用源程序执行以前,就将程序源代码“翻译”成目标代码(机器语言),所以其目标程序能够脱离其语言环境独立执行(编译后生成的可执行文件,是 CPU 能够理解的二进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦须要修改,必须先修改源代码,再从新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。编译后程序运行时不须要从新翻译,直接使用编译的结果就好了。程序执行效率高,依赖编译器,跨平台性差些。多线程
Python 运行速度慢的缘由:
Python 是解释型语言,代码在执行时须要逐行编译成 CPU 可以识别的机器码,这个编译过程很是消耗时间,因此运行速度比较慢。编程语言
Python 是一种面向对象的、解释型的、弱类型的脚本语言。
弱类型语言的典型特征:
1.变量无须声明便可直接赋值;
2.变量的数据类型能够动态改变。工具
Python 的优势:
1.开源的编程语言;
2.开发效率高,既有完善的内置库也有很是丰富第三方库;
3.自动内存管理;
4.跨平台;
5.胶水语言,能够和其它语言混合使用;
Python 的缺点:
1.相比于 C/JAVA 代码执行速度慢;
2.代码不能加密,Python 是解释性语言,源码都是以明文形式保存的;
3.线程不能利用多核,GIL 即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任什么时候刻仅有一个线程在执行,Python 的线程是操做系统的原生线程。在 Linux 上为 pthread ,在 Windows 上为 Win thread,彻底由操做系统调度线程的执行。一个 Python 解释器进程内有一条主线程,以及多条用户程序的执行线程。即便在多核 CPU 平台上,因为 GIL 的存在,因此禁止多线程的并行执行。加密
Python代码的两种执行方式:
1.py文件执行
2.交互器执行操作系统
Python 程序第一次运行的时候,编译的结果保存在位于内存中的 PyCodeObject 中,当 Python 程序运行结束时 Python 解释器会把 PyCodeObject 写回到 pyc 文件中。
第二次运行时 Python 程序会在磁盘中寻找 pyc 文件,若是找到则直接加载,不然就会重复Python第一次运行的过程。
若是 Python 源代码被更新了则会重新编译。
PyCodeObject:在内存中保存 Python 编译后的结果
Pyc:保存 Python 解释后的结果。线程
Python 脚本文件的后缀名能够不写,对于 Python 来说没有实际意义,加 .py 后面后缀名只是为了告诉人们这个脚本是用 Python 语言发开的。翻译