你知道Python是什么意思吗?
python 中⽂就是蟒蛇的意思。
在计算机中,它是⼀种编程语⾔。
Python(英语发⾳:/ˈpaɪθən/), 是⼀种⾯向对象、解释型计算机程序设计语⾔,由Guido van Rossum于1989年底发明,第⼀个公开发⾏版发⾏于1991年。Python语法简洁⽽清晰,具有丰富和强⼤的类库。它常被昵称为胶⽔语⾔,它能够把⽤其他语⾔制作的各种模块(尤其是C/C++)很轻松地联结在⼀起。常见的⼀种应⽤情形是,使⽤Python快速⽣成程序的原型(有时甚⾄是程序的最终界⾯),然后对其中有特别要求的部分,⽤更合适的语⾔改写,⽐如3D游戏中的图形渲染模块,性能要求特别⾼,就可以⽤C++重写。
1,发展历程编辑
⾃从20世纪90年代初Python语⾔诞⽣⾄今,它逐渐被⼴泛应⽤于处理系统管理任务和Web编程。Python[1] 已经成为最受欢迎的程序设计语⾔之⼀。2011年1⽉,它被TIOBE编程语⾔排⾏榜评为2010年度语⾔。⾃从2004年以后,python的使⽤率是呈线性增长[2] 。
由于Python语⾔的简洁、易读以及可扩展性,在国外⽤Python做科学计算的研究机构⽇益增多,⼀些知名
⼤学
已经采⽤Python教授程序设计课程。例如卡耐基梅隆⼤学的编程基础和⿇省理⼯学院的计算机科学及编程导论就使⽤Python语⾔讲授。众多开源的科学
计算软件包都提供了Python的调⽤接⼝,
例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。⽽Python专⽤的科学计算扩展库就更多了,例如如下3个⼗分经典的
科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语
⾔及其众多的扩展库所构成的开发环境⼗分适合⼯程技术、科研⼈员处理实验数据、制作图表,甚⾄开发科学计算应⽤程序。
说起科学计算,⾸先会被提到的可能是MATLAB。然⽽除了MATLAB的⼀些专业性很强的⼯具箱还⽆法替代之外,MATLAB的⼤部分常⽤功能都可以在Python世界中到相应的扩展库。和MATLAB相⽐,⽤Python做科学计算有如下优点:
●⾸先,MATLAB是⼀款商⽤软件,并且价格不菲。⽽Python完全免费,众多开源的科学计算库都提供了Python的调⽤接⼝。⽤户可以在任何计算机上免费安装Python及其绝⼤多数扩展库。
●其次,与MATLAB相⽐,Python是⼀门更易学、更严谨的程序设计语⾔。它能让⽤户编写出更易读、易维护的代码。
●最后,MATLAB主要专注于⼯程和科学计算。然⽽即使在计算领域,也经常会遇到⽂件管理、界⾯设计、⽹络通信等各种需求。⽽Python有着丰富的扩展库,可以轻易完成各种⾼级任务,开发者可以⽤Python实现完整应⽤程序所需的各种功能。
2,产⽣
Python的创始⼈为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的⽆趣,决⼼开发⼀个新的脚本解释程序,做为ABC 语⾔的⼀种继承。之所以选中Python(⼤蟒蛇的意思)作为程序的名字,是因为他是⼀个叫Monty Python的喜剧团体的爱好者。
engine什么意思ABC是由Guido参加设计的⼀种教学语⾔。就Guido本⼈看来,ABC
这种语⾔⾮常优美和强⼤,是专门为⾮专业程序员设计的。但是ABC语⾔并没有成功,究其原因,Guido 认为是⾮开放造成的。Guido
决⼼在Python 中避免这⼀错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。
就这样,Python在Guido⼿中诞⽣了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另⼀种相当优美且强⼤的语⾔,为⼩型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
3,风格
Python在设计上坚持了清晰划⼀的风格,这使得Python成为⼀门易读、易维护,并且被⼤量⽤户所欢迎的、⽤途⼴泛的语⾔。
设计者开发时总的指导思想是,对于⼀个特定的问题,只要有⼀种最好的⽅法来解决就好了。这在由Tim
Peters写的Python格⾔(称为The Zen of Python)⾥⾯表述为:There should be one-- and
preferably only one --obvious way to do it. 这正好和Perl语⾔(另⼀种功能类似的⾼级动态语⾔)的中⼼思想TMTOWTDI(There’s More Than One Way To Do It)完全相反。
Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下⼀⾏不向右缩进)都不能通过编译。其中很重要的⼀项就是Python的缩进规则。
⼀个和其他⼤多数语⾔(如C)的区别就是,⼀个模块的界限,完全是由每⾏的⾸字符在这⼀⾏的位置来决定的(⽽C语⾔
是⽤⼀对花括号{}来明确的定出模块的边界的,与字符的位置毫⽆关系)。这⼀点曾经引起过争议。因为⾃从C这类的语⾔诞⽣后,语⾔的语法含义与字符的排列
⽅式分离开来,曾经被认为是⼀种程序语⾔的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使⽤模块的地⽅),Python确实使得程序更加清晰和美观。
4,设计定位
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语⾔中“总是有多种⽅法来做同⼀件事”的理念在Python开发者中通常是难以忍受的。
Python开发者的哲学是“⽤⼀种⽅法,最好是只有⼀种⽅法来做⼀件事”。在设计Python语⾔时,如果⾯临多种选择,Python开发者⼀般会拒绝
花俏的语法,⽽选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为⽐Perl具备更好的可读性,并且能够⽀撑⼤
规模的软件开发。这些准则被称为Python格⾔。在Python解释器内运⾏import this可以获得完整的列表。
Python开发⼈员尽量避开不成熟或者不重要的优化。⼀些针对⾮重要部位的加快运⾏速度的补丁通常不会被合并到Python内。所以很多⼈认为Python很慢。不过,根据⼆⼋定律,⼤多数程序对速度要求不⾼。在某些对运⾏速度要求很⾼的情况,Python设计师
倾向于使⽤JIT技术,或者⽤使⽤C/C++语⾔改写这部分程序。可⽤的JIT技术是PyPy。
Python是完全⾯向对象的语⾔。函数、模块、数字、字符串都是对象。并且完全⽀持继承、重载、派⽣、多继承,有益于增强源代码的复⽤性。Python⽀持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语⾔,Python对函数式设计只提供了有限的⽀持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计⼯具。
虽然Python可能被粗略地分类为“脚本语⾔”(script language),但实际上⼀些⼤规模软件开发计划例如Zope、Mnet及BitTorrent,Google 也⼴泛地使⽤它。Python的⽀持者较喜欢称它为⼀种⾼级动态编程语⾔,原因是“脚本语⾔”泛指仅作简单程序设计任务的语⾔,如shellscript、VBScript等只能处理简单任务的编程语⾔,并不能与Python相提并论。
Python本⾝被设计为可扩充的。并⾮所有的特性和功能都集成到语⾔核⼼。Python提供了丰富的API和
⼯具,以便程序员能够轻松地使⽤C语⾔、C++、Cython来编写扩充模块。Python编译器本⾝也可以被集成到其它需要脚本语⾔的程序内。
因此,很多⼈还把Python作为⼀种“胶⽔语⾔”(glue
language)使⽤。使⽤Python将其他语⾔编写的程序进⾏集成和封装。在Google内部的很多项⽬,例如Google
Engine使⽤C++编写性能要求极⾼的部分,然后⽤Python或Java/Go调⽤相应的模块。《Python技术⼿册》的作者马特利(AlexMartelli)说:“这很难讲,不过,2004 年,Python 已在 Google 内部使⽤,Google 召募许多 Python⾼⼿,但在这之前就已决定使⽤Python,他们的⽬的是 Python where we can, C++ where we
must,在操控硬件的场合使⽤ C++,在快速开发时候使⽤ Python。