在Python中,数据的类型是不用声明的,这也是动态编程语言的一个特性,而java、c++作为静态语言,需要声明数据的类型,为什么动态编程语言不需要指定数据类型,而静态语言需要?
编译型语言和解释性语言
1、编译型语言
需要通过编译器将源代码编译成机器码,之后才能执行。一般需要经过编译、链接两个步骤
优点:
编译器一般会有预编译的过程对代码进行优化,因为只编译一次,运行时不需要编译,所以执行速度快。
缺点:
如果对代码修改后,需要重新编译,编译依据机器的环境。
2、解释性语言
解释性语言不需要编译,在运行时才对源码解释,一边解释一边运行
优点:
良好的平台兼容性,可以灵活调整
缺点:
每次运行都要重新解释一遍,性能上不如编译语言
动态类型语言和静态语言
1、动态类型语言
动态类型语言:运行时检查数据的类型
动态语言:运行时可以改变代码结构
2、静态语言
数据的类型在编译的时候就已经确定,编写时要明确数据类型
强类型语言和弱类型语言
强类型语言:一旦变量被确定类型后,除非通过强制类型转换,否则不能改变其类型
弱类型语言:变量被确定以后,可以赋值不同类型的值,变量是指向数据的地址