什么是Python?
Python是一種即譯式的,互動(dòng)的,面向?qū)ο蟮木幊陶Z言,它包含了模組式的操作,異常處理,動(dòng)態(tài)資料形態(tài),十分高層次的動(dòng)態(tài)資料結(jié)構(gòu),以及類別的使用。Python揉合了簡單的語法和強(qiáng)大的功能。它的語法表達(dá)優(yōu)美易讀。它具有很多優(yōu)秀的腳本語言的特點(diǎn):解釋的,面向?qū)ο蟮模瑑?nèi)建的高級(jí)數(shù)據(jù)結(jié)構(gòu),支持模塊和包,支持多種平臺(tái),可擴(kuò)展。而且它還支持交互式方式運(yùn)行,圖形方式運(yùn)行。它擁有眾多的編程界面支持各種操作系統(tǒng)平臺(tái)以及眾多的各類函數(shù)庫。利用C和C++可以對(duì)它進(jìn)行擴(kuò)充。個(gè)別的應(yīng)用軟件如果需要有一個(gè)可程序化界面也可以利用它來做為擴(kuò)展語言用。最后,Python的可移植度非常高:它可以在許多的Unix類平臺(tái)上運(yùn)行,在Mac,MS-DOS,視窗Windows,Windows NT,OS/2,BeOS,以至RISCOS上都有相關(guān)的Python版本。
簡單的說它具有以下一些特征:
是一種解釋性的,面向?qū)ο蟮模哂袆?dòng)態(tài)語義的程序設(shè)計(jì)語言。
適合快速開發(fā)。
能集成到其他流行的服務(wù)器,也自帶服務(wù)器。
提供清晰的數(shù)據(jù)/邏輯/表示的分離。
帶有可擴(kuò)展的內(nèi)置對(duì)象和強(qiáng)大的集成安全模塊。
Python的歷史
Python的創(chuàng)始人為Guido van Rossum。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個(gè)新的腳本解釋程序,做為ABC語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為程序的名字,是因?yàn)樗且粋€(gè)Monty 大蟒蛇飛行馬戲團(tuán)的愛好者。
ABC是由Guido參加設(shè)計(jì)的一種教學(xué)語言(沒聽說過)。就Guido本人看來,ABC這種語言非常優(yōu)美和強(qiáng)大,是專門為非專業(yè)程序員設(shè)計(jì)的。但是ABC語言并沒有成功,究其原因,Guido認(rèn)為是非開放造成的。Guido決心在Python中避免這一錯(cuò)誤(的確如此,Python與其它的語言如C,C++和Java結(jié)合的非常好)。同時(shí),他還想實(shí)現(xiàn)在ABC中閃現(xiàn)過但未曾實(shí)現(xiàn)的東西。
就這樣,Python在Guido手中誕生了(真要感謝他)。實(shí)際上,第一個(gè)實(shí)現(xiàn)是在Mac機(jī)上。可以說,Python是從ABC發(fā)展起來,主要受到了Modula-3(另一種相當(dāng)優(yōu)美且強(qiáng)大的語言,為小型團(tuán)體所設(shè)計(jì)的)的影響。并且結(jié)合了Unix Shell和C的習(xí)慣。
Python可用在哪些地方?
Python可以用在許多場合。當(dāng)你需要大量的動(dòng)態(tài)調(diào)整,要容易使用,功能強(qiáng)大并且富有彈性的情況,Python可以發(fā)揮很好的功效。
在處理文字方面,Python的核心功能(不需要任何擴(kuò)充庫的情況下)比別的編程語言更為易用而且速度相當(dāng)。這使Python在需要處理字符串的工作(包括系統(tǒng)管理,CGI編程)上成為高效的語言。
當(dāng)Python加上它的標(biāo)準(zhǔn)擴(kuò)充庫(如PIL,COM,Numeric,Oracledb,kjbuckets,tkinter,win32api,等等)或是特別擴(kuò)充庫(你自己寫的,或是用SWING做的,或是利用ILU/COBRA/com的)后,它可以變成一個(gè)很好的“膠合語言”或者叫“指導(dǎo)語言”。就是指把不同的編程環(huán)境和互不相關(guān)的軟件功能整合的工具。例如把Numeric和Oracledb透過Python結(jié)合起來你就可以替你的資料庫數(shù)據(jù)做系統(tǒng)分析。Python的簡單、易用以及方便而強(qiáng)大的c/c++擴(kuò)展方面使它成為一種十分優(yōu)秀的“膠合語言”。
許多開發(fā)人員也在寫圖形用戶界面時(shí)廣泛的采用了Python。如果在Windows下,如果想做一個(gè)圖形界面程序,那么Python可以勝任。可以去wxPython.org看一下,它是一個(gè)Python的擴(kuò)展庫,可以用來實(shí)現(xiàn)跨平臺(tái)的圖形編程,它支持windows和unix/linux。在那個(gè)網(wǎng)站上有一些演示,可以學(xué)習(xí)一下。Python可以做CGI。有些主頁提供了對(duì)Python的CGI支持。現(xiàn)在還有一些用Python做的游戲。如果想了解更多的Python可以做什么,可以去SourceForge上查找有關(guān)Python的項(xiàng)目,上面有很多東西。
運(yùn)行方式
Python可以以命令行方式運(yùn)行,也可以交互式方式運(yùn)行,還具有圖形集成環(huán)境,這樣開發(fā)Python就相當(dāng)方便。現(xiàn)在已經(jīng)出現(xiàn)了許多用Python編寫的可視化編程軟件,用于實(shí)現(xiàn)象Delphi一樣的功能。
面向?qū)ο?/P>
Python是一個(gè)真正的面向?qū)ο笳Z言。它甚至支持異常的處理。如果學(xué)過Java,應(yīng)該對(duì)這個(gè)不陌生。但其它的腳本語言,如PHP,好象就沒有。這使得程序的編寫更加清晰,而不需要許多的錯(cuò)誤檢查了。
模塊和包
這一點(diǎn)更象是Java。對(duì)于Java的支持,大家可以了解JPython。JPython是用Java寫的Python,它完全支持Java,在這個(gè)環(huán)境下使用Python可以隨意地使用Java的類庫。語言擴(kuò)展可以用C、C++或Java為Python編寫新的新言模塊,如函數(shù)。或者與Python直接編譯在一起,或者采用動(dòng)態(tài)庫裝入方式實(shí)現(xiàn)。也專門有人編寫了一個(gè)工具,可以實(shí)現(xiàn)為Python自動(dòng)實(shí)現(xiàn)函數(shù)接口封裝,這就是SWIG(Simplified Wrapper and Interface Generator),或稱做簡單封裝和接口生成器(可以在http://sourceforge.net/projects/swig/)。
有趣的語法
Guido認(rèn)為Python的語法是非常優(yōu)美的。其中一點(diǎn)就是,塊語句的表示不是C語言常用的{}對(duì),或其它符號(hào)對(duì),而是采用縮近表示法!有趣吧。就這一點(diǎn)來說,Guido的解釋是:首先,使用縮近表示法減少了視覺上的混亂,并且使程序變短,這樣就減少了需要對(duì)基本代碼單元注意的范圍;其次,它減少了程序員的自由度,更有利于統(tǒng)一風(fēng)格,使得閱讀別人的程序更容易。感覺還是不錯(cuò)的,就C語言來說,在if語句后面大括號(hào)的寫法就好幾種,不同的人喜歡不同的樣子,還不如統(tǒng)一起來,都不會(huì)看得別扭。
在每個(gè)類或函數(shù)的定義后面,第一行可以是說明語句,根本不需要注釋符標(biāo)記。對(duì)于后面跟塊語句的語句,后面應(yīng)跟上一個(gè)冒號(hào)。一行語句不能太長,因?yàn)闆]有行結(jié)束符,如果超長則要使用續(xù)行符(\)。還有一些有趣的比如說,象下面的一個(gè)比較處理,用C語言為:
if (2<a&&a<5)
用Python可以表示為
if (2<a<5) :
什么是Zope?
Zope是一個(gè)開放源代碼的Web應(yīng)用服務(wù)器,采用Python語言開發(fā),使用它您可以方便的構(gòu)建內(nèi)容管理、內(nèi)部網(wǎng)、門戶網(wǎng)站、和其他的定制應(yīng)用。
高度面向?qū)ο蟮腤eb開發(fā)平臺(tái),采用Python語言開發(fā)。
可以運(yùn)行在幾乎所有流行的操作系統(tǒng)上,支持多語言。
能集成到其他流行的服務(wù)器,也自帶服務(wù)器。
提供清晰的數(shù)據(jù)/邏輯/表示的分離 。
帶有可擴(kuò)展的內(nèi)置對(duì)象和強(qiáng)大的集成安全模塊。
什么是Plone?
Pone是一個(gè)Zope上的一個(gè)用戶友好、功能強(qiáng)大的開放源代碼內(nèi)容管理系統(tǒng)。Plone適合用作內(nèi)部網(wǎng)/外部網(wǎng)的服務(wù)器、文檔發(fā)布系統(tǒng)、門戶服務(wù)器和異地協(xié)同群件工具,到目前,Plone其實(shí)已經(jīng)發(fā)展成為了一個(gè)應(yīng)用開發(fā)平臺(tái)。
是一種功能強(qiáng)大的開放源碼(Open Source)內(nèi)容管理系統(tǒng)(CMS) 。
通過Web瀏覽器來訪問、編輯內(nèi)容和管理,易于更新內(nèi)容 。
無需編程,即可創(chuàng)建新的內(nèi)容類型 。
協(xié)同的編輯和發(fā)布機(jī)制 。
Python的IDE開發(fā)環(huán)境:
Wingide:http:// www.wingide.com
ipython: http://ipython.scipy.org/
參考資料:
Python中文社區(qū):http://python.cn
Zope/Plone中文社區(qū):http://zope.cn
Zope官方網(wǎng)站: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