首页 > 代码库 > Python修炼之路第一步:什么是Python?
Python修炼之路第一步:什么是Python?
Python的起源:
要知道一门语言是什么样的语言,我们就必须从它的起源说起。Python是荷兰程序员Guido Van Rossum于1989年发明,在经过两年时间的修改和优化之后,于1991年发行了第一个公开发行版。Python因其特性,自发明开始到迅速发展在计算机程序设计语言中占有了一席之地,都足以证明其优秀性,而Python发明背后的一个小故事也令其增添了一丝趣味性:Python的发明者 Guido在1989年的圣诞节期间,为了打发无聊的时间,决心开发一个新的脚本解释语言,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。--引自百度百科。Python的设计初衷也是为了继承ABC语言,相比于ABC语言,Python则更开放。Python因为其优美和强大的功能,很快得以发展,2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率呈线性增长。
计算机程序设计语言的几大要素:
程序设计语言虽然都是脚本解释语言,但是却也不尽相同,因为设计的目的和方式,也造就它们的不同的特性和脚本编写规则。而计算机程序设计语言大体可以区分以下几种。
1.编译性和解释性:
编译型语言是将我们写好的源代码用负责翻译的程序进行转换,生成相应的可执行的代码,这个过程就是编译,编译型语言在保存之前便已经一次性的将所有源代码行转换为了可执行的代码,而编译后则会生成对应的可执行文件,以供我们可以直接运行。而解释性则不相同,只有在所写程序开始运行时,程序运行到哪一步则编译到哪一步。在程序运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换二级制代码以供执行。两者的区别就在于,前者在代码编写完成后进行了编译,然后就可以直接执行,而后者则是将编译和执行几乎同步完成(ps:但还是编译在前,执行在后,否则机器也无法识别程序员编写的代码行更无法完成工作了。)。而正是这一点的差异,导致了编译型和解释型不同的特性和程序员的选择:编译型编译完成后提高了用户打开程序的响应速度和体验,但是对于一些模块较多的程序而言则比较麻烦,不同的模块会生成不同的目标文件,而最后还要将所有的目标文件整合封装为一个可执行文件,这无疑增大了程序员的工作量和难度。而解释型则因为编译工作和执行工作几乎同时进行,所以程序执行的响应时间加载的速度上远远低于编译型的程序。编译型由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等都要采用它,如:C/C++、PASCAIOBJECT、pascal(Delphi)、VB等基本都可以视为编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JAVA、JAVAScrip、VBScript、Perl、Python等等
2.动态类型语言和静态类型语言:
动态类型语言:动态类型语言是指运行期间才去做数据类型检查的语言,也就是说,用动态类型语言编程时,不需要给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
静态类型语言:静态类型语言和动态类型语言刚好相反,它的数据类型是在编译期间检查的,也就是说在写程序的时候要声明所有的变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
3.强类型定义语言和弱类型定义语言:
强类型定义语言:强制数据类型定义的语言。变量被指定了数据类型后,除非强制转换,否则将一直保持当前的数据类型。如:将A定义为整型变量,则程序决不会将其当做字符串处理。强类型定义语言是类型安全的语言。
弱类型定义语言:数据类型可以被忽视的语言,它与强类型定义语言刚好相反,一个变量可以赋予不同数据类型的值。
强类型定义语言在速度上可能稍逊色于弱类型定义语言,但是强类型定义语言更加严谨,能避免许多的错误。另外,“这门语言不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如,Python是动态类型语言,是强类型定义语言(类型安全的语言)VBScript是动态语言,是弱类型定义语言(类型不安全的语言)JAVA是静态语言,是强类型定义语言。Python是一门动态解释性强类型定义语言
Python的优缺点:
优点:
1.简单易懂
2.开发效率高,有着丰富的第三方库
3.可拓展性:如果你需要你的一段关键代码运行的更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们
4.可移植性
5.可嵌入性:你可以把你的Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
缺点:
1.速度慢,Python的运行速度相比C语言确实慢很多,甚至比JAVA也要慢一些。
2.代码不能加密,因为Python是解释性语言,它的源码都是以明文形式存放的,不过我不认为这是一个缺点,如果你的项目要求源码必须是加密的,从一开始你就不应该用Python去实现
3.线程不能利用多CPU的问题,这也是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global interpreter Lock),屎计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行
总结:
计算机最好的语言就是Python!
Python修炼之路第一步:什么是Python?