python简介:Python 是一种面向对象、直译式计算机程序设计语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数计算机程序设计语言不一样,它采用缩进来定义语句块。
python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和web编程。python已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率呈线性增长。
python语法简捷而清晰,具有丰富和强大的类库。它常常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++ )轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
python的历史:Python的创始人为吉多·范罗苏姆(Guido van Rossum)。在1989年圣诞节期间的阿姆斯特丹,吉多为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个BBC电视剧“蒙提·派森”(Monty Python‘s Flying Circus)的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了如C、C++和Java等其他语言。
就这样,Python在吉多手中诞生了,第一个公开发行版发行于1991年。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
目前吉多·范罗苏姆仍然是Python的主要开发者,决定整个Python语言的发展方向,Python社区经常称呼他是仁慈的独裁者。其中的Anaconda版本即是由吉多在维护,所以,学习python时安装Anaconda版本非常方便,所需要的库都不再需要另外安装,在安装Anaconda时都会自动安装。
Python 2.0于2000年10月16日发布,主要是实现了完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进程的影响逐渐扩大。Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。
python的设计风格:python在设计上坚持清晰划一的风格,这使得python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。
python的设计定位:python的设计哲学是“优雅”、“明确”、“简单”。详细的请参阅:一图解读python设计哲学:python之禅
python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。
python的面向对象:python是完全面向对象的语言。函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。python支持重载运算符和动态类型。
python的扩展:python本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、c++、Cpython(CPython即用C语言实现Python及其解释器,Jython是用Java语言来实现,Pypy是用Python来实现(准确说是个Python子集))来编写扩充模块。python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把python作为一种“胶水语言”(glue language)使用,使用python将其他语言编写的程序进行集成和封装。
python的执行:python在执行时,首先会将.py文件中的源代码编译成python的字节码(byte code),然后再由python虚拟机(Python Virtual Machine)来执行这些编译好的byte code。这种机制的基本思想跟Java、.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,python的Virtual Machine是一种更高级的Virtual Machine,和Java或.NET相比,python的Virtual Machine距离真实机器的距离更远。或者可以这么说,python的Virtual Machine是一种抽象层次更高的Virtual Machine。