一.py是一门什么样的语言
①编译型和解析型
编译:有一个负责翻译的程序来对我们的源代码进行转换,生成想对应的可执行代码。一次把所有的代码转化成机器语言,然后写成可执行文件。c/c++、Pascal/object、Pascal(Delpho)、vb
解析:在程序运行前的一刻,还只有源程序的而没有可执行程序,而程序每执行到源程序的某一条指令,则会有一个称之为解析程序的外壳程序将源代码转换成二进制代码以供执行。java、javaScript、VBScript、perl、python等等。
两者比较:解析型、只要有相对应的编译器,移植几乎不成问题。编译型、虽然源代码可以移植,但前提是必须针对不同的系统分别进行编译,小小改动有可能会等待漫长的compiling...Lingking。由于解析型程序是将编译的过程放到执行处,这就决定了解析型程序注定要比编译型慢上一大截。
②动态语言和静态语言
( 1 )动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,
在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋
值给变量时,在内部将数据类型记录下来。 Python 和 Ruby 就是一种典型的动态类型语言,
其他的各种脚本语言如VBScript也多少属于动态类型语言。
(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间
检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代
表,其他的静态类型语言还有 C# 、 JAVA 等。
对于动态语言与静态语言的区分,套用一句流行的话就是: Static typing when possible,
dynamic typing when needed。
③强类型定义语言和弱类型定义语言
(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个
数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义
了一个整型变量 a, 那么程序根本不可能将 a 当作字符串类型处理。强类型定义语言是类型
安全的语言。
(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量
可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性
能够有效的避免许多错误。另外, “ 这门语言是不是动态语言 ” 与 “ 这门语言是否类型安全 ” 之
间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,
是弱类型定义语言(类型不安全的语言) ; JAVA 是静态语言,是强类型定义语言(类型安
全的语言)。
最后总结:python是动态语言,是强类型定义语言(类型安全的语言)。
一句话概括:python是一门动态解析性的强类型定义语言。
二.python的优缺点
①优点:简单,开发效率高、有非常强大的第三方库支持,高级语言,可移植性,可扩展性,可嵌入性。
②缺点: 速度慢,代码不能加密,线程不能利用多cpu问题。