Python(發音:[ 'paiθ(?)n; (US) 'paiθ?n ]),是一種面向對象的解釋性的計算機程序設計語言,也是一種功能強大而完善的通用型語言,已經具有十多年的發展歷史,成熟且穩定。Python 具有腳本語言中最豐富和強大的類庫,足以支持絕大多數日常應用。
這種語言具有非常簡捷而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的
操作系統中運行。
目前,基于這種語言的相關技術正在飛速的發展,用戶數量急劇擴大,相關的資源非常多。
Python的Hello World程序下面是一個在標準輸出設備上輸出Hello World的簡單程序,這種程序通常作為開始學習編程語言時的第一個程序:
#!/usr/bin/env python
print "Hello, world!"
Python的歷史Python的創始人為Guido van Rossum。1989年圣誕節期間,在
阿姆斯特丹,Guido為了打發圣誕節的無趣,決心開發一個新的腳本解釋程序,做為 ABC 語言的一種繼承。之所以選中 Python(大蟒蛇的意思)作為程序的名字,是因為他是一個Monty Python的飛行馬戲團的愛好者。
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 可能被粗略地分類為"腳本語言(scripting language)", 實際上一些大規模軟件開發計劃例如 Zope, Mnet 及
BitTorrent.
Google也廣泛地使用它。 Python 的支持者較喜歡稱它為一種高階動態編程語言 , 原因是"腳本語言" 泛指單用作簡單編程任務如 shell scripts ,而Python不能與
JavaScript等只能處理簡單任務的編程語言相提并論。
Python的特色可擴充性可說是Python作為一種編程語言的特色。新的內置模塊(module)可以用C 或 C++寫成。而我們也可為現成的模塊加上Python的接口。Python可以使用戶避免過分的語法的羈絆而將精力主要集中到所要實現的程序任務上。
Python也被稱為是一門清晰的語言。因為它的作者在設計它的時候,總的指導思想是,對于一個特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的python格言(稱為The Zen of Python)里面表述為:
There should be one-- and preferably only one --obvious way to do it.
有意思的是,這正好和
Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。這似乎是人們常把Perl和Python互相比較的重要原因。
Python語言是一種清晰的語言的另一個意思是,它的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。這樣有意的強制程序員養成良好的編程習慣。其中很重要的一項就是Python的縮進規則。
例如if語句:
if age<21:
print "You cannot buy wine!\n"
print "But you can buy chewing gum.\n"
print "this is outside if\n"
一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字符在這一行的位置來決定的(而
C語言是用一對花括號{}來明確的定出模塊的邊界的,與字符的位置毫無關系)。這一點曾經引起過爭議。因為自從C這類的語言誕生后,語言的語法含義與字符的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強制程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。
另外Python在其他部分的設計上也堅持了清晰劃一的風格,這使得Python稱為一門易讀性、易維護性好,并且被大量用戶所歡迎的、用途廣泛的語言。
Python的局限雖然Python是一個非常成功的語言,但是也有必要明白它的局限性。
1. 運行效率低下
目前為止,Python可以說是所有主流腳本語言中速度最慢的。(是這樣么?待考.)這與其腳本引擎的設計思路有關。
如果你的應用對于速度有著較高的要求,就要考慮Python是否能滿足需要。不過這一點可以通
過使用C編寫關鍵模塊,然后由Python調用的方式加以部分解決。
2. 多線程支持欠佳
Python支持多線程,但是其運行效率也不高。
3. 獨特的語法
這也許不應該被稱為局限,但是它用縮進來區分語句關系的方式還是給很多初學者帶來了困惑。
即便是很有經驗的Python程序員,也可能陷入陷阱當中。最常見的情況是tab和空格的混用會導
致錯誤,而這是用肉眼無法分別的。
4. 無類型
作為一種動態語言,隨時隨地創建和使用變量是Python給我們帶來的巨大的便利。但是它也會
使得程序不嚴謹,某些錯誤只有在運行中才可能出現。所以,使用Python編程的時候,要對類
型做到心里有數。這也使得Python的IDE工具無法提供便利的自動完成等功能。
Python的前景Python在編程領域的占有率一直處于穩步上升之中,根據最新的數據,Python排名第七。前六名分別是Java,
C,VB,C++,PHP和Perl. 作為一個很年輕的語言,Python的位置已經相當令人振奮了。隨著微軟將Python納入
.Net 平臺,相信Python的將來會更加強勁發展。Python 很可能會成為.Net平臺快速開發的主流語言。
欲了解這方面情況,請參考Iron Python的相關信息.
著名的搜索引擎 Google 也大量使用Python。
更加令人吃驚的是,在Nokia智能手機所采用的Symbian操作系統上,Python成為繼C++,Java之后的
第三個編程語言!可見Python的影響力之巨大。
Python的應用Zope-應用服務器
Plone-內容管理系統
Django-鼓勵快速開發的web framework
Twisted - Python Network Application Framework Python的網絡應用程序框架
TurboGears - 另一個Web應用快速開發框架
Bit Torrent - 著名的BT下載工具
2006年的Google編程大賽已經將Python作為參賽語言之一