Python 語言介紹

(參考資料:https://zh.wikipedia.org/wiki/Python )

(參考資料:壹讀 https://read01.com/zh-tw/RnBmOoe.html#.XLaMg5gzaUk )


Python的創始人為吉多·范羅蘇姆 (Guido van Rossum)。1989年的聖誕節期間,吉多·范羅蘇姆為了在阿姆斯特丹開發的一個新直譯式程式。之所以選中Python作為程式的名字,是因為他是BBC電視劇 Monty Python's Flying Circus 的愛好者。

Python 2.0於2000年10月16日發布,增加了實現完整的垃圾回收,並且支援Unicode。同時,整個開發過程更加透明,社群對開發進度的影響逐漸擴大。

Python 3.0於2008年12月3日發布,此版不完全相容之前的Python原始碼。不過,很多新特性後來也被移植到舊的Python 2.6/2.7版本。


Python是完全物件導向的語言。函式、模組、數字、字串都是物件。並且完全支援繼承、重載、衍生、多重繼承,有益於增強原始碼的複用性。Python支援重載運算子,因此Python也支援泛型設計。

Python是一種物件導向、直譯式的電腦程式語言。它的語法簡單,能夠輕鬆完成很多常見的任務,也經常被當作腳本語言用於處理系統管理和網路應用程式的編寫。近年來使用Python作為應用程式的開發工具已經是非常普遍的現象,舉凡Google、Facebook等大型網站,都可以見到Python的蹤跡。

語言特色

1. 簡單:Python一個良好的Python程序就感覺像是在讀英語一樣,它讓你能專注於解決問題而不是去搞明白語言本身。Python極其容易上手。

2. 速度快:Python 的底層是用 C 語言寫的,很多標準庫和第三方庫也都是用 C 寫的,運行速度非常快。

3. 免費、開源:Python是自由/開放源碼軟體 (FLOSS)。可以自由地發布這個軟體的拷貝、閱讀它的原始碼、對它做改變、把它的一部分用於新的自由軟體中。

4. 高階語言:當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。

5. 可移植性:Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程序無需修改就可以在下述任何平台上面運行。這些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC和Symbian!

6. 直釋性:一個用編譯性語言比如C或C++寫的程序必須從原始程式(即C或C++語言)轉換到的機器語言(二進位代碼,即0和1)。這個過程稱為編譯。而Python語言寫的程序不需要編譯成二進位代碼。可以直接從原始程式,Python的解譯器把原始碼轉換成稱為字節碼的中間形式,然後再把它翻譯成機器語言而執行。只需要把Python程序拷貝到另外一台計算機上,它就可以工作了,這也使得你的Python程序更加易於移植。

7. 可擴展性:如果你需要你的一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然後在你的Python程序中使用它們。

8. 可嵌入性:你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

9. 豐富的套件庫:Python標準庫確實很龐大。它可以幫助你處理各種工作,包括正則表達式、文檔生成、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶介面)、Tk和其他與系統有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的「功能齊全」理念。除了標準庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。

Python的設計哲學是「優雅」、「明確」、「簡單」。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。這些準則被稱為「Python格言」。

The Zen of Python (Python的禪語)

by Tim Peters

Beautiful is better than ugly. (美比醜好)

Explicit is better than implicit. (外顯比內隱好)

Simple is better than complex. (簡單比複雜好)

Complex is better than complicated. (複合比雜亂複雜更好。)

Flat is better than nested. (平鋪優於巢狀)

Sparse is better than dense. (稀疏優於密集)

Readability counts. (可讀性很重要)

Special cases aren't special enough to break the rules. (特殊情況不足以打破規則)

Although practicality beats purity. (雖然實用性勝過潔淨性)

Errors should never pass silently. (錯誤不應該默默地被傳遞)

Unless explicitly silenced. (除非明確地沉默)

In the face of ambiguity, refuse the temptation to guess. (面對模棱兩可,拒絕被誘的猜測)

There should be one-- and preferably only one --obvious way to do it. (應該有一個 - 最好只有一個 - 明顯的方法來做)

Although that way may not be obvious at first unless you're Dutch. (雖然這種方式起初可能並不明顯,除非你是荷蘭人)

Now is better than never. (現在比從不來得好)

Although never is often better than *right* now. (雖然從不比*現在*來得好)

If the implementation is hard to explain, it's a bad idea. (如果很難解釋如何實施,那麼這就是一個壞主意)

If the implementation is easy to explain, it may be a good idea. (如果實現很容易解釋,那可能是個好主意)

Namespaces are one honking great idea -- let's do more of those! (命名空間是一個很棒的主意 - 讓我們做更多的事情吧)