Python

Python

PythonKK 英语发音:/'paɪθɑn/, DJ 英语发音:/ˈpaiθən/)是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。

风格

  Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。  设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:There should be one-- and preferably only one --obvious way to do it. 这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDIThere's More Than One Way To Do It)完全相反。   Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。  一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括iffor和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。

执行

  Python在执行时,首先会将.py文件中的源代码编译成Pythonbyte code(字节码),然后再由Python Virtual MachinePython 虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java.NET是一致的。然而,Python Virtual MachineJava.NETVirtual Machine不同的是,PythonVirtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说PythonVirtual MachineJava.NET的功能更强大,而是说和Java .NET相比,PythonVirtual Machine距离真实机器的距离更远。或者可以这么说,PythonVirtual Machine是一种抽象层次更高的Virtual Machine。  基于CPython编译出的字节码文件,通常是.pyc格式。

优点

  简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。  易学:Python极其容易上手,因为Python有极其简单的语法。  免费、开源:PythonFLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。  高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。  可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括LinuxWindowsFreeBSDMacintoshSolarisOS/2AmigaAROSAS/400BeOSOS/390z/OSPalm OSQNXVMSPsionAcom RISC OSVxWorksPlayStationSharp ZaurusWindows CEPocketPCSymbian以及Google基于linux开发的android平台。  解释性:一个用编译性语言比如CC++写的程序可以从源文件(即CC++语言)转换到一个你的计算机使用的语言(二进制代码,即01)。这个过程通过编译器和不同的标记、选项完成。  运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。  在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。  面向对象:Python既支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。  可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用CC++编写,然后在Python程序中使用它们。  可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。  丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGIFTP电子邮件、XMLXML-RPCHTMLWAV文件、密码系统、GUI图形用户界面)、Tk和其他与系统有关的操作。这被称作Python功能齐全理念。除了标准库以外,还有许多其他高质量的库,如wxPythonTwistedPython图像库等等。

  规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

局限

  强制缩进:这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。  单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perlawk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

应用

  

  系统编程:提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。  图形处理:有PILTkinter等图形库支持,能方便进行图形处理。  数学处理:NumPy扩展提供大量与许多标准数学库的接口。  文本处理:python提供的re模块能支持正则表达式,还提供SGMLXML分析模块,许多程序员利用python进行XML程序的开发。  数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL ServerOracleSybaseDB2MysqlSQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。  网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet BitTorrent. Google都在广泛地使用它。  Web编程:应用的开发语言,支持最新的XML技术。  多媒体应用:PythonPyOpenGL模块封装了OpenGL应用程序编程接口,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。  pymo引擎:PYMO全称为python memories off,是一款运行于symbian S60V3,symbian S60V5系统上的AVG游戏引擎。因其基于python平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO[1]


你可能感兴趣的:(编程,数据库,python,正则表达式,语言,图形)