python是一门解释型语言
编程语言分为编译型和解释型语言,但是都有翻译的意思,区别在于翻译的时机不同.编译型
读一本外文书,可以先找一个翻译,给他足够的时间,可以把整本书翻译成一个母语版供人阅读.
这种方式一次把所有的代码转换为机器语言,然后写成可执行文件
解释型
读一本外文书,可以找个翻译,一句一句地给我们翻译,但是如果回看一些章节,则需要他给你重新翻译
这种方式在程序运行的前一刻还只有源程序没有可执行程序,而程序执行到源程序的某一条指令则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,就是不断地解释/执行,解释/执行….这就注定解释型程序要比编译型程序慢上一大截
动态语言和静态语言动态语言是指在运行期间才去做数据类型检查的语言,也就是说,用动态类型的语言编程时,永远不用给任何变量制定数据类型,该语言会在第一次赋值给变量时,在内部将数据类型记录下来
静态语言的数据类型实在编译期间检查的,也就是说在写程序时要声明所有的变量的数据类型
强类型定义语言和弱类型定义语言强类型定义语言:强制数据类型定义的语言,一旦一个变量被指定了某个数据结构,如果不经过强制转换,name永远都是这个数据类型
弱类型定义语言:数据类型可以被忽略的语言,一个变量可以赋予不同数据类型的值
强类型定义语言在速度上可能逊色于弱类型定义语言,但是更加严谨
TIPS:
语言是不是动态语言与这门语言是否类型安全无关
python是动态语言,是强类型定义语言(类型安全),VBScript是动态语言,是弱类型定义语言(类型不安全),JAVA是静态语言,是强类型定义语言(类型安全语言)
优点
1.简单—容易入门,深入下去学可以编写复杂的程序
2.开发效率高—有强大的第三方库,很多方面都有模块支持,能在基础库的基础上再进行开发
3.高级语言—写代码的时候无需考虑内存的底层细节
4.可移植性—开源,python被移植到许多平台上,如果小心翼翼地避免使用依赖于系统的特性,所有的python程序无需修改就能够运行到所有的系统平台
5.可扩展性—如果想让某段关键代码运行得更快或者希望某些算法不公开,开源把部分程序用C或者C++编写,然后再python程序中使用他们
6.可嵌入型—可以把python嵌入C/C++程序,从而向用户提供脚本功能
缺点
1.速度慢
2.代码不能加密
3.线程不能利用多CPU问题..GIL(Global Interpreter Lock)全局解释器锁,是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,python的线程是操作系统的原生线程.linux上为pthread,windows上为win thread,完全由操作系统调度线程的执行