Python 是一種物件導向、直譯式的電腦程式語言。它包含了一組功能完備的標準庫,能夠輕鬆完成很多常見的任務。它的語法簡單,與其它大多數程式設計語言使用大括弧不一樣,它使用縮排來定義語句塊。
Python 具備垃圾回收功能,能夠自動管理記憶體使用。它經常被當作腳本語言用於處理系統管理任務和網路程式編寫,然而它也非常適合完成各種高階任務。Python 虛擬機本身幾乎可以在所有的作業系統中運行。使用一些諸如 py2exe、PyPy、PyInstaller 之類的工具可以將Python 原始碼轉換成可以脫離 Python 解釋器執行的程式。
Python 的創始人為 Guido van Rossum。Guido 決心開發一個新的腳本解釋程式,作為 ABC 語言的一種繼承。ABC 是由 Guido 參加設計的一種教學語言。就 Guido 本人看來,ABC 這種語言非常優美和強大,是專門為非專業程式設計師設計的。但是 ABC 語言並沒有成功,究其原因,Guido 認為是非開放造成的。Guido 決心在 Python 中避免這一錯誤,並取得了非常好的效果,完美結合了 C 和其他一些語言。
ABC,一種程式語言與編程環境,目標是在教導非專業的程式設計師學習如何開始寫程式。
Python 是完全物件導向的語言。函式、模組、數字、字串都是物件。並且完全支援繼承、重載、衍生、多重繼承,有益於增強原始碼的複用性。Python 支援重載運算符,因此 Python 也支援泛型設計。相對於 Lisp 這種傳統的函數式程式語言,Python 對函數式設計只提供了有限的支援。( LISP 是具有悠久歷史的計算機編程語言家族,有獨特和完全括號的前綴符號表示法。起源於西元 1958 年,是現今第二悠久而仍廣泛使用的高階編程語言。只有 FORTRAN 編程語言比它更早一年。)
Python 本身被設計為可擴充的。並非所有的特性和功能都整合到語言核心。Python 提供了豐富的 API 和工具,以便程式設計師能夠輕鬆地使用 C、C++、Cython 來編寫擴充模組。Python 編譯器本身也可以被整合到其它需要腳本語言的程式內。因此,有很多人把 Python 作為一種「膠水語言(glue language)」使用。使用 Python 將其他語言編寫的程式進行整合和封裝。在 Google 內部的很多專案,例如 Google App Engine 使用 C++ 編寫效能要求極高的部分,然後用 Python 或 Java/Go 調用相應的模組。
《 Python 技術手冊》的作者 Martelli 說:「這很難講,不過,2004年,Python 已在 Google 內部使用,Google 召募許多 Python 高手,但在這之前就已決定使用 Python。他們的目的是儘量使用 Python,在不得已時改用 C++;在操控硬體的場合使用 C++,在快速開發時候使用 Python。」
Python 的設計哲學是「優雅」、「明確」、「簡單」。Python 開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。在設計 Python 語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇 明確沒有 或者 很少有歧義 的語法。這些準則被稱為「Python格言」。在 Python 解釋器內運行 import this 可以獲得完整的列表。
Python 開發人員盡量避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁通常不會被合併到 Python 內。再加上因為 Python 屬於動態型別語言,動態型別語言是在執行期間檢查資料的類型,不得不保持描述變數值的實際類型標記,程式在每次操作變數時,需要執行資料依賴分支,而靜態型別語言相對於動態型別語言,在聲明變數時已經指定了資料類型和表示方法,根據這一原理導致 Python 相對於 C、Visual Basic 等靜態型別語言來說執行速度較慢。不過,根據二八定律,大多數程式對速度要求不高。在某些對運行速度要求很高的情況,Python 設計師傾向於使用 JIT ( 即時編譯,Just-in-time compilation ) 技術,或者用使用 C/C++ 語言改寫這部分程式。目前可用的 JIT 技術是 PyPy ,是用 Python 實現的 Python 直譯器,目標是讓 PyPy 比 C 實現的 Python 更為容易的適應各個專案和方便裁剪。
CPython 是用 C語言 實作的 Python直譯器。作為官方實作,它是最廣泛使用的 Python直譯器。除了 CPython 以外,還有用 Java 實作的 Jython,用 .NET 實作的 IronPython,使 Python 方便地和 Java程式、.NET程式 整合。
更多持續變動中的細節、動態、相關超連結可詳閱維基百科:https://en.wikipedia.org/wiki/Python_(programming_language)
Python 的設計哲學是「優雅」、「明確」、「簡單」。其哲學是「用一種方法,最好是只有一種方法來做一件事」。在使用 Python 語言開發時,如果面臨多種選擇,Python 風格一般會拒絕花俏的語法,而選擇明確沒有或者很少有歧義的語法。也因此影響在其語言設計中,能用文字代表的操作就盡量不用符號,例如很多語言會用 && 代表 AND,但 Python 就會直接用 and。
同樣的 Python 也不是為了 Web 而設計的語言,它可以用在許多種特別的場合例如科學運算等(其實各大語言皆可),若用在網站開發,則通常搭配 Django 框架來使用。Django 是非常完整的框架,還自帶後台介面,在各方面評比中並不輸給 Ruby on Rails。另外,若是學習視覺技術,如 3D 動畫、建模等相關領域,則幾乎都是被 Python 佔領的,例如 MAYA 與 Blender 等軟體都是用 Python 作為腳本語言開發工具。
由於 Google 的許多核心功能採用 Python,替這個語言在世界打出巨大的知名度。雖然其職缺數與使用企業不若 PHP 或 Ruby 那麼多,不過其廣泛的使用情境讓學這門語言的人不會受到產業或工作類型的限制。
知名使用者: Google, Dropbox
線上教學:
https://pydoing.blogspot.tw/2012/10/python-tutorial.html
http://dokelung-blog.logdown.com/posts/280520-python-quickstart
