Ⅰ编程语言基础知识
编程语言总体分以为机器语言、汇编语言、高级语言:
机器语言:计算机硬件能够直接使用的编程语言,二进制的集合,属于低级语言。
汇编语言:借助符号代替机器指令,与机器指令对应,面向计算机硬件的,容易理解和记忆,属于低级语言。
高级语言:与计算机硬件无关,其表达方式接近于所描述的问题,更易于掌握。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器),但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类:
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是 CPU 可以理解的二进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。
ⅡPython 语言概述
Python 是一种面向对象的、解释型的、弱类型的脚本语言。
弱类型语言的典型特征:
1.变量无须声明即可直接赋值;
2.变量的数据类型可以动态改变。
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 语言发开的。