python 介紹 一、簡介 Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),是一種廣泛使用的高級編程語言,屬於通用型編程語言,由Guido van Rossum 創造,第一版發佈於 1991 年。作為一種解釋型語言,Python 的設計哲學強調代碼的可讀性和簡潔的語法 ...
python 介紹
一、簡介
Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),是一種廣泛使用的高級編程語言,屬於通用型編程語言,由Guido van Rossum 創造,第一版發佈於 1991 年。作為一種解釋型語言,Python 的設計哲學強調代碼的可讀性和簡潔的語法(尤其是使用空格縮進劃分代碼塊,而非使用大括弧或者關鍵詞)。相比 C++ 或 Java,Python 讓開發者能夠用更少的代碼表達想法。不管是小型還是大型程式,該語言都試圖讓程式的結構清晰明瞭。
與 Scheme、Ruby、Perl、Tcl 等動態類型編程語言一樣,Python 擁有動態類型系統和垃圾回收功能,能夠自動管理記憶體使用,並且支持多種編程範式,包括面向對象、命令式、函數式和過程式編程。其本身擁有一個巨大而廣泛的標準庫。
Python 虛擬機本身幾乎可以在所有的操作系統中運行。Python 的官方解釋器 CPython,用 C語言 編寫,是一個由社區驅動的自由軟體,目前由 Python軟體基金會管理。
二、歷史
Python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程式,作為ABC語言的一種繼承。之所以選中Python作為程式的名字,是因為他是BBC電視劇——蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者。ABC是由吉多參加設計的一種教學語言。就吉多本人看來,ABC這種語言非常優美和強大,是專門為非專業程式員設計的。但是ABC語言並沒有成功,究其原因,吉多認為是非開放造成的。吉多決心在Python中避免這一錯誤,並獲取了非常好的效果,完美結合了C和其他一些語言。[5]
就這樣,Python在吉多手中誕生了。實際上,第一個實現是在Mac機上。可以說,Python是從ABC發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。並且結合了Unix shell和C的習慣。
目前吉多仍然是Python的主要開發者,決定整個Python語言的發展方向。Python社區經常稱呼他是仁慈的獨裁者。
Python 2.0於2000年10月16日發佈,增加了實現完整的垃圾回收,並且支持Unicode。同時,整個開發過程更加透明,社區對開發進度的影響逐漸擴大。Python 3.0於2008年12月3日發佈,此版不完全相容之前的Python源代碼。不過,很多新特性後來也被移植到舊的Python 2.6/2.7版本。
Python是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多重繼承,有益於增強源代碼的復用性。Python支持重載運算符,因此Python也支持泛型設計。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標準庫(functools, itertools)提供了與Haskell和Standard ML中類似的函數式程式設計工具。
雖然Python可能被粗略地分類為“腳本語言”(script language),但實際上一些大規模軟體開發項目例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態編程語言,原因是“腳本語言”泛指僅作簡單程式設計任務的語言,如shell script、VBScript等只能處理簡單任務的編程語言,並不能與Python相提並論。
Python本身被設計為可擴充的。並非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程式員能夠輕鬆地使用C、C++、Cython來編寫擴充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程式內。因此,有很多人把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程式進行集成和封裝。在Google內部的很多項目,例如Google App Engine使用C++編寫性能要求極高的部分,然後用Python或Java/Go調用相應的模塊。[6]《Python技術手冊》的作者馬特利(Alex Martelli)說:“這很難講,不過,2004年,Python已在Google內部使用,Google召募許多Python高手,但在這之前就已決定使用Python。他們的目的是儘量使用Python,在不得已時改用C++;在操控硬體的場合使用C++,在快速開發時候使用Python。
三、應用範圍
Web程式
Python經常被用於Web開發。比如,通過mod_wsgi模塊,Apache可以運行用Python編寫的Web程式。使用Python語言編寫的Gunicorn作為Web伺服器,也能夠運行Python語言編寫的Web程式。Python定義了WSGI標準應用介面來協調Http伺服器與基於Python的Web程式之間的溝通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以讓程式員輕鬆地開發和管理複雜的Web程式。
Python對於各種網路協議的支持很完善,因此經常被用於編寫伺服器軟體、網路爬蟲。第三方庫Twisted支持非同步線上編寫程式和多數標準的網路協議(包含客戶端和伺服器),並且提供了多種工具,被廣泛用於編寫高性能的伺服器軟體。另有gevent這個流行的第三方庫,同樣能夠支持高性能高併發的網路開發。
GUI開發
Python本身包含的Tkinter庫能夠支持簡單的GUI開發。但是越來越多的Python程式員選擇wxPython或者PyQt等GUI包來開發跨平臺的桌面軟體。使用它們開發的桌面軟體運行速度快,與用戶的桌面環境相契合。通過PyInstaller還能將程式發佈為獨立的安裝程式包。
操作系統
在很多操作系統里,Python是標準的系統組件。大多數Linux發行版和Mac OS X都集成了Python,可以在終端機下直接運行Python。有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器、Red Hat Linux和Fedora的Anaconda安裝器。在RPM系列Linux發行版中,有一些系統組件就是用Python編寫的。Gentoo Linux使用Python來編寫它的Portage軟體包管理系統。Python標準庫包含了多個調用作業系統功能的庫。通過pywin32這個第三方軟體包,Python能夠訪問Windows的COM服務及其它Windows API。使用IronPython,Python程式能夠直接調用.Net Framework。
其他
NumPy、SciPy、Matplotlib可以讓Python程式員編寫科學計算程式。有些公司會使用Scons代替make構建C++程式。
很多游戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫游戲的邏輯、伺服器。相較於Python,Lua的功能更簡單、體積更小;而Python則支持更多的特性和數據類型。很多游戲,如EVE Online使用Python來處理游戲中繁多的邏輯。
YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。OLPC的作業系統Sugar項目的大多數軟體都是使用Python編寫。
PS:以上內容摘錄 維基百科。