http://blog.csdn.net/indexchen/archive/2005/12/07/546204.aspx
最近準(zhǔn)備學(xué)習(xí)一下動態(tài)語言,可選擇的有perl、Python、Ruby,通過查看相關(guān)評論和比較,決定選擇Python作為學(xué)習(xí)對象:-)。
Python是一種面向?qū)ο蟮慕忉屝汀⒔换ナ秸Z言。它既有腳本語言的簡易,又有C++,java等語言的強(qiáng)大功能。
下面看一下Python的優(yōu)勢:
1 - 簡單。
Python的語法比Perl,Java,C,C++相比要簡單很多,實(shí)現(xiàn)同樣功能只需java、C++代碼量的1/3或1/5。簡單是Python的設(shè)計(jì)原則,它的各方面都始終圍繞該原則,也從中得到很多益處。
由于語言本身比較簡單,因此Python學(xué)習(xí)起來相對容易,上手很快;由于簡單,代碼更容易閱讀和維護(hù),對提軟件質(zhì)量有極大幫助。因?yàn)楝F(xiàn)在開發(fā)的系統(tǒng)都很復(fù)雜,如果工具再復(fù)雜,系統(tǒng)維護(hù)成本會極高。
由于代碼量較少,因此可以減少輸入,提高開發(fā)效率,一條語句可能就可實(shí)現(xiàn)C++要10條語句才能實(shí)現(xiàn)的功能。由于硬件性能的大副提高,開發(fā)效率的重要性正變得比運(yùn)行效率更重要。
看幾個python實(shí)現(xiàn)的例子
(1)將一個目錄下文件全部復(fù)制到另一個目錄
import os,shutil
for f in os.listdir(sdir):
shutil.(sdir+"/"+f,ddir)
sdir和ddir為源目錄和目標(biāo)目錄,執(zhí)行時要用實(shí)際名稱
(2)輸出文本文件的每一行
f = open(textfile,'r')
for line in f:
print line
f.close()
(3)將文件rawfile 壓縮為zip文件
import zipfile
z = zipfile.ZipFile('my.zip','w',zipfile.ZIP_DEFLATED)
rf = open(rawfile,'rb')
z.writestr(rawfile,rf.read())
rf.close()
z.close()
如果上述例子用java或c++來實(shí)現(xiàn),代碼量會多出很多。
2 - 開放。
Python可以和現(xiàn)有的主流語言和環(huán)境交互,如果覺得Python解釋型語言不能提供足夠的速度,可以在Python中調(diào)用C、C++編寫的模塊;在不需要速度的地方,可以用Python快速實(shí)現(xiàn),然后在C、C++中調(diào)用Python的模塊。
Jython提供了Python和Java之間的交互,已有的java代碼不會丟棄,可繼續(xù)使用。
對于COM、.Net,Python也可與之進(jìn)行交互,甚至可將Python作為腳本在瀏覽器中調(diào)用。
3 - 豐富的庫
Python的庫提供了計(jì)算環(huán)境中所涉及的幾乎所有功能,如果沒有,你也可以自己實(shí)現(xiàn)。從用戶圖形接口到網(wǎng)絡(luò)編程,從Web應(yīng)用到數(shù)據(jù)庫接口,還有和操作系統(tǒng)接口,該接口符合POSIX標(biāo)準(zhǔn)。你還可以用Python來開發(fā)游戲、圖象處理、人工智能、數(shù)學(xué)庫等等。
4 - 可移植性
Python是解釋型語言,沒有編譯連接過程,它由Python解釋器執(zhí)行,因此Python代碼可不作修改在不同操作系統(tǒng)上執(zhí)行。目前Python支持幾乎所有流行的操作系統(tǒng)。列表可到www.python.org 詳查。
5 - 免費(fèi)
Python是開源項(xiàng)目,能從網(wǎng)絡(luò)上免費(fèi)獲得Python系統(tǒng)。你還可以將Python嵌入在你的產(chǎn)品中,包括商業(yè)產(chǎn)品。
6 - 豐富的資源
在www.python.org可以得到很多的資源,能幫助你解決在使用過程中遇到的各種問題,目前全球使用Python的人數(shù)在50到100萬之間,如此人氣還有什么問題不能解決。
7 - Google也將Python作為主要的編程語言,這也和Google的簡略風(fēng)格很相符。
還有很多,在學(xué)習(xí)過程中再去體驗(yàn)。
呵呵,還是老路子。。選擇Python,就是感覺好玩,沒別的意思。。