天天看点

python 语言开发组合模块,为软件整合提供帮助

目录

<dl></dl>

<dd></dd>

<dd>展开</dd>

  ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。

  就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

  Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。

  Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。

  一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。

  基于C的Python编译出的字节码文件,通常是.pyc格式。

  简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

  易学:Python极其容易上手,因为Python有极其简单的语法。

  高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

  可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。

  运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。

  面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

  可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

  可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

  规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。

  强制缩进:这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。

  单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

  

  图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。

  数学处理:NumPy扩展提供大量与许多标准数学库的接口。

  文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。

  数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,Mysql、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。

  Web编程:应用的开发语言,支持最新的XML技术。

名称

功能

Tkinter

Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。

PyGTK

用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的库。

<a href="http://baike.baidu.com/view/2888080.htm" target="_blank">PyQt</a>

用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是Scintillar编辑器类的Qt接口。

wxPython

GUI编程框架,熟悉MFC的人会非常喜欢,简直是同一架构(对于初学者或者对设计要求不高的用户来说,使用Boa Constructor可以方便迅速的进行wxPython的开发)

<a href="http://baike.baidu.com/view/1369367.htm" target="_blank">PIL</a>

Psyco

一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。

xmpppy

Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。

PyMedia

用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。

Pmw

Python megawidgets,Python超级GUI组件集,一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。

PyXML

用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容: 

xmlproc: 一个符合规范的XML解析器。 

Expat: 一个快速的,非验证的XML解析器。还有其他 

和他同级别的还有 PyHtml PySGML。

<a href="http://baike.baidu.com/view/2602650.htm" target="_blank">PyGame</a>

用于多媒体开发和游戏软件开发的模块。

PyOpenGL

模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。

NumPy、NumArray、SAGE

NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的底层代码使用C来编写,所以速度的优势很明显。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代Magma, Maple, Mathematica和Matlab 这类工具。

MySQLdb

用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。

Python-ldap

提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。

smtplib

发送电子邮件。

ftplib

定义了FTP类和一些方法,用以进行客户端的ftp编程。如果想了解ftp协议的详细内容,请参考RFC959。

  Python 3.0的变化主要在以下几个方面:

  部分函数和语句的改变:最引人注意的改变是print语句没有了,取而代之的是print函数。

  ●IDLE:Python内置IDE (随python安装包提供)

  ●Komodo和Komodo Edit:后者是前者的免费精简版

  ●PythonWin:ActivePython或pywin32均提供该IDE,仅适用于Windows

  ●SPE(Stani's Python Editor):功能较多的自由软件,基于wxPython

  ●Ulipad:功能较全的自由软件,基于wxPython;作者是中国Python高手limodou

  ●WingIDE:可能是功能最全的IDE,但不是自由软件(教育用户和开源用户可以申请免费key)

  ●Eric:基于PyQt的自由软件,功能强大。全名是:The Eric Python IDE

  ●DrPython

  ●PyPE:一个开源的跨平台的PythonIDE。

  ●emacs:自带python支持,自动补全、refactor等功能需要插件支持

  ●Vim: 最新7.3版编译时可以加入python支持,提供python代码自动提示支持

  ●Visual Studio 2003 + VisualPython:仅适用Windows,已停止维护,功能较差

  ●SlickEdit

  ●Visual Studio 2010 + Python Tools for Visual Studio

  ●TextMate

  ●Netbeans IDE

  1. 运行速度。

  2. 国内市场较小。

  3. 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。

  4. 构架选择太多。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

<dt>扩展阅读:</dt>

1

2

<dt>开放分类:</dt>