任我行

一天一个脚印......
每日一句:
posts - 54, comments - 218, trackbacks - 1, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Python初探

Posted on 2005-10-11 15:31 任我行 阅读(797) 评论(1)  编辑 收藏 引用 所属分类: Python

什么是Python?
    Python是一种即译式的,互动的,面向对象的编程语言,它包含了模组式的操作,异常处理,动态资料形态,十分高层次的动态资料结构,以及类别的使用。Python揉合了简单的语法和强大的功能。它的语法表达优美易读。它具有很多优秀的脚本语言的特点:解释的,面向对象的,内建的高级数据结构,支持模块和包,支持多种平台,可扩展。而且它还支持交互式方式运行,图形方式运行。它拥有众多的编程界面支持各种操作系统平台以及众多的各类函数库。利用C和C++可以对它进行扩充。个别的应用软件如果需要有一个可程序化界面也可以利用它来做为扩展语言用。最后,Python的可移植度非常高:它可以在许多的Unix类平台上运行,在Mac,MS-DOS,视窗Windows,Windows NT,OS/2,BeOS,以至RISCOS上都有相关的Python版本。

简单的说它具有以下一些特征:

        是一种解释性的,面向对象的,具有动态语义的程序设计语言。

        适合快速开发。

        能集成到其他流行的服务器,也自带服务器。

        提供清晰的数据/逻辑/表示的分离。

        带有可扩展的内置对象和强大的集成安全模块。

Python的历史

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty 大蟒蛇飞行马戏团的爱好者。

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

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

Python可用在哪些地方?

    Python可以用在许多场合。当你需要大量的动态调整,要容易使用,功能强大并且富有弹性的情况,Python可以发挥很好的功效。

   在处理文字方面,Python的核心功能(不需要任何扩充库的情况下)比别的编程语言更为易用而且速度相当。这使Python在需要处理字符串的工作(包括系统管理,CGI编程)上成为高效的语言。

   当Python加上它的标准扩充库(如PIL,COM,Numeric,Oracledb,kjbuckets,tkinter,win32api,等等)或是特别扩充库(你自己写的,或是用SWING做的,或是利用ILU/COBRA/com的)后,它可以变成一个很好的“胶合语言”或者叫“指导语言”。就是指把不同的编程环境和互不相关的软件功能整合的工具。例如把Numeric和Oracledb透过Python结合起来你就可以替你的资料库数据做系统分析。Python的简单、易用以及方便而强大的c/c++扩展方面使它成为一种十分优秀的“胶合语言”。

许多开发人员也在写图形用户界面时广泛的采用了Python。如果在Windows下,如果想做一个图形界面程序,那么Python可以胜任。可以去wxPython.org看一下,它是一个Python的扩展库,可以用来实现跨平台的图形编程,它支持windows和unix/linux。在那个网站上有一些演示,可以学习一下。Python可以做CGI。有些主页提供了对Python的CGI支持。现在还有一些用Python做的游戏。如果想了解更多的Python可以做什么,可以去SourceForge上查找有关Python的项目,上面有很多东西。

运行方式

Python可以以命令行方式运行,也可以交互式方式运行,还具有图形集成环境,这样开发Python就相当方便。现在已经出现了许多用Python编写的可视化编程软件,用于实现象Delphi一样的功能。

面向对象

Python是一个真正的面向对象语言。它甚至支持异常的处理。如果学过Java,应该对这个不陌生。但其它的脚本语言,如PHP,好象就没有。这使得程序的编写更加清晰,而不需要许多的错误检查了。

模块和包

这一点更象是Java。对于Java的支持,大家可以了解JPython。JPython是用Java写的Python,它完全支持Java,在这个环境下使用Python可以随意地使用Java的类库。语言扩展可以用C、C++或Java为Python编写新的新言模块,如函数。或者与Python直接编译在一起,或者采用动态库装入方式实现。也专门有人编写了一个工具,可以实现为Python自动实现函数接口封装,这就是SWIG(Simplified Wrapper and Interface Generator),或称做简单封装和接口生成器(可以在http://sourceforge.net/projects/swig/)。

有趣的语法

Guido认为Python的语法是非常优美的。其中一点就是,块语句的表示不是C语言常用的{}对,或其它符号对,而是采用缩近表示法!有趣吧。就这一点来说,Guido的解释是:首先,使用缩近表示法减少了视觉上的混乱,并且使程序变短,这样就减少了需要对基本代码单元注意的范围;其次,它减少了程序员的自由度,更有利于统一风格,使得阅读别人的程序更容易。感觉还是不错的,就C语言来说,在if语句后面大括号的写法就好几种,不同的人喜欢不同的样子,还不如统一起来,都不会看得别扭。

在每个类或函数的定义后面,第一行可以是说明语句,根本不需要注释符标记。对于后面跟块语句的语句,后面应跟上一个冒号。一行语句不能太长,因为没有行结束符,如果超长则要使用续行符(\)。还有一些有趣的比如说,象下面的一个比较处理,用C语言为:     

if (2<a&&a<5)

用Python可以表示为

if (2<a<5) :

什么是Zope?

Zope是一个开放源代码的Web应用服务器,采用Python语言开发,使用它您可以方便的构建内容管理、内部网、门户网站、和其他的定制应用。

        高度面向对象的Web开发平台,采用Python语言开发。

        可以运行在几乎所有流行的操作系统上,支持多语言。

        能集成到其他流行的服务器,也自带服务器。

        提供清晰的数据/逻辑/表示的分离 。

        带有可扩展的内置对象和强大的集成安全模块。

什么是Plone?

Pone是一个Zope上的一个用户友好、功能强大的开放源代码内容管理系统。Plone适合用作内部网/外部网的服务器、文档发布系统、门户服务器和异地协同群件工具,到目前,Plone其实已经发展成为了一个应用开发平台。

       是一种功能强大的开放源码(Open Source)内容管理系统(CMS) 。

       通过Web浏览器来访问、编辑内容和管理,易于更新内容 。

       无需编程,即可创建新的内容类型 。

       协同的编辑和发布机制 。

Python的IDE开发环境:

Wingide:http:// www.wingide.com

ipython: http://ipython.scipy.org/

参考资料:

Python中文社区:http://python.cn 
Zope/Plone中文社区:http://zope.cn 
Zope官方网站:http://www.zope.org 
中文Zope用户组:http://www.czug.org/ 
Python类库: http://www.pypackage.org/ 
Python中文论坛:http://www.linuxforum.net/
O'Reilly: http://www.oreillynet.com
wxPython.org: http://www.wxPython.org 
Jpython.org: http://jython.org

Feedback

# re: Python初探   回复  更多评论   

2005-10-11 16:28 by 江南白衣
非C++文章请尽量不要发布到网站首页

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理