小白也能懂的 Python 入門指南(1)——Python 的前世今生

Life is short. You need Python. ——Bruce Eckel

上邊這句話是 Python 社區的名言,翻譯過來就是“人生苦短,我用 Python”,由此可見,Python 在很多人心中已成為最中意的編程語言。在人工智能、機器學習日趨火熱的時代,Python 又趕上了一波 AI 的熱潮,即使你沒系統的學習過它,相信你也一定聽說過吧,如果你也對 Python 產生了濃厚的興趣,跟我一起來了解下它的前世今生吧!

Python 的誕生

Python 的作者,Guido von Rossum,荷蘭人。1982 年,Guido 從阿姆斯特丹大學(University of Amsterdam)獲得了數學和計算機碩士學位。然而,儘管他算得上是一位數學家,但他更加享受計算機帶來的樂趣。用他的話說,儘管擁有數學和計算機雙料資質,他總趨向於做計算機相關的工作,並熱衷於做任何和編程相關的活兒。1989 年聖誕節期間,在阿姆斯特丹,Guido 為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,作為 ABC 語言的一種繼承。之所以選中 Python(中譯為大蟒蛇)作為該編程語言的名字,其實與 Guido 的一個習慣有關,他是一個電視劇愛好者,他在相當長的一段時間內,一直在追一部非常有趣的喜劇組合表演的系列電視劇——Monty Python(有點類似於我們看的武林外傳),由於對 Monty Python 這個喜劇團體的喜愛所以給他的新的編程語言取名叫做 Python,他希望這個新的語言,能符合他的理想:創造一種 C 和 shell 之間,功能全面,易學易用,可拓展的語言。

小白也能懂的 Python 入門指南(1)——Python 的前世今生

Guido

1991 年,第一個 Python 編譯器(同時也是解釋器)誕生。它是用 C 語言實現的,並能夠調用 C 庫(.so 文件)。從一出生,Python 已經具有了:類(class),函數(function),異常處理(exception),包括表(list)和詞典(dictionary)在內的核心數據類型,以及模塊(module)為基礎的拓展系統。

Python 語法很多來自 C,但又受到 ABC 語言的強烈影響。來自 ABC 語言的一些規定直到今天還富有爭議,比如強制縮進。但這些語法規定讓 Python 容易讀。另一方面,Python 聰明的選擇服從一些慣例(特別是 C 語言的慣例)。比如使用等號賦值,使用 def 來定義函數。Guido 認為,如果“常識”上確立的東西,沒有必要過度糾結。

小白也能懂的 Python 入門指南(1)——Python 的前世今生

python

Python 從一開始就特別在意可拓展性(extensibility)。Python 可以在多個層次上拓展。從高層上,你可以引入.py 文件。在底層,你可以引用 C 語言的庫。Python 程序員可以快速的使用 Python 寫.py 文件作為拓展模塊。但當性能是考慮的重要因素時,Python 程序員可以深入底層,寫 C 程序,編譯為.so 文件引入到 Python 中使用。Python 就好像是使用鋼構建房一樣,先規定好大的框架。而程序員可以在此框架下相當自由的拓展或更改。

Python 的流行

最初的 Python 完全由 Guido 本人開發。Python 得到 Guido 同事的歡迎。他們迅速的反饋使用意見,並參與到 Python 的改進。Guido 和一些同事構成 Python 的核心團隊。他們將自己大部分的業餘時間用於 hack Python (也包括工作時間,因為他們將 Python 用於工作)。隨後,Python 拓展到 CWI 之外。Python 將許多機器層面上的細節隱藏,交給編譯器處理,並凸顯出邏輯層面的編程思考。Python 程序員可以花更多的時間用於思考程序的邏輯,而不是具體的實現細節 (Guido 有一件 T 恤,寫著:人生苦短,我用 Python)。這一特徵吸引了廣大的程序員。Python 開始流行。

Python 擅長處理高級數學、金融、時間序列和統計學。繪製圖形也很容易。在網絡編程的某些方面也有一些優勢。此外,Python 可以做很多事情,覆蓋範圍很廣(雖然其他軟件在深入挖掘時可能會做得更好)。 在將來,Python 可能被廣泛應用於深度學習、機器學習和人工智能。待到 5G 全面到來,由於它的簡單易學,也許會擁有更大的市場。

Python 擅長處理高級數學、金融、時間序列和統計學。繪製圖形也很容易。在網絡編程的某些方面也有一些優勢。此外,Python 可以做很多事情,覆蓋範圍很廣。下面列舉了一些 Python 的主要應用領域:

  • 雲計算: 雲計算最火的語言, 典型應用 OpenStack
  • WEB 開發: 眾多優秀的 WEB 框架,眾多大型網站均為 Python 開發,Youtube, Dropbox, 豆瓣。。。, 典型 WEB 框架有 Django
  • 科學運算、人工智能: 典型庫 NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系統運維: 運維人員必備語言
  • 金融:量化交易,金融分析,在金融工程領域,Python 不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的 Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於 c,c++,java,尤其擅長策略回測
  • 圖形 GUI: PyQT, WxPython,TkInter

Python 在一些公司的應用:

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google 廣告等項目都在大量使用 Python 開發
  • CIA: 美國中情局網站就是用 Python 開發的
  • NASA: 美國航天局(NASA)大量使用 Python 進行數據分析和運算
  • YouTube:世界上最大的視頻網站 YouTube 就是用 Python 開發的
  • Dropbox:美國最大的在線雲存儲網站,全部用 Python 實現,每天網站處理 10 億個文件的上傳和下載
  • Instagram:美國最大的圖片分享社交網站,每天超過 3 千萬張照片被分享,全部用 python 開發
  • Facebook:大量的基礎庫均通過 Python 實現的
  • Redhat: 世界上最流行的 Linux 發行版本中的 yum 包管理工具就是用 python 開發的
  • 豆瓣: 公司幾乎所有的業務均是通過 Python 開發的
  • 知乎: 國內最大的問答社區,通過 Python 開發(國外 Quora)
  • 春雨醫生:國內知名的在線醫療網站是用 Python 開發的
  • 除上面之外,還有搜狐、金山、騰訊、盛大、網易、百度、阿里、淘寶 、土豆、新浪、果殼等公司都在使用 Python 完成各種各樣的任務。

Python 的未來

在將來,Python 可能被廣泛應用於深度學習、機器學習和人工智能。待到 5G 全面到來,由於它的簡單易學,也許會擁有更大的市場。而在薪資待遇上,Python 開發者也沒有讓人失望。通過分析來自全國的 12809 份樣例資料可以發現,全國 Python 工程師的平均月資能夠達到 19160 元,其中 20 - 30K 的工程師數量更是超過了四成。 雖然各大城市的薪資標準略有不同,但是這也確實傳遞出一個信息,如果想要年薪百萬、一夜暴富、成功走上人生巔峰,對比 Java、C、C++ 等老牌語言,Python 是個絕佳的嘗試。

小白也能懂的 Python 入門指南(1)——Python 的前世今生


分享到:


相關文章: