Life is short. You need Python. ——Bruce Eckel
上邊這句話是 Python 社區(qū)的名言,翻譯過來就是“人生苦短,我用 Python”,由此可見,Python 在很多人心中已成為最中意的編程語言。在人工智能、機(jī)器學(xué)習(xí)日趨火熱的時代,Python 又趕上了一波 AI 的熱潮,即使你沒系統(tǒng)的學(xué)習(xí)過它,相信你也一定聽說過吧,如果你也對 Python 產(chǎn)生了濃厚的興趣,跟我一起來了解下它的前世今生吧!
Python 的誕生
Python 的作者,Guido von Rossum,荷蘭人。1982 年,Guido 從阿姆斯特丹大學(xué)(University of Amsterdam)獲得了數(shù)學(xué)和計算機(jī)碩士學(xué)位。然而,盡管他算得上是一位數(shù)學(xué)家,但他更加享受計算機(jī)帶來的樂趣。用他的話說,盡管擁有數(shù)學(xué)和計算機(jī)雙料資質(zhì),他總趨向于做計算機(jī)相關(guān)的工作,并熱衷于做任何和編程相關(guān)的活兒。1989 年圣誕節(jié)期間,在阿姆斯特丹,Guido 為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,作為 ABC 語言的一種繼承。之所以選中 Python(中譯為大蟒蛇)作為該編程語言的名字,其實與 Guido 的一個習(xí)慣有關(guān),他是一個電視劇愛好者,他在相當(dāng)長的一段時間內(nèi),一直在追一部非常有趣的喜劇組合表演的系列電視劇——Monty Python(有點(diǎn)類似于我們看的武林外傳),由于對 Monty Python 這個喜劇團(tuán)體的喜愛所以給他的新的編程語言取名叫做 Python,他希望這個新的語言,能符合他的理想:創(chuàng)造一種 C 和 shell 之間,功能全面,易學(xué)易用,可拓展的語言。

1991 年,第一個 Python 編譯器(同時也是解釋器)誕生。它是用 C 語言實現(xiàn)的,并能夠調(diào)用 C 庫(.so 文件)。從一出生,Python 已經(jīng)具有了:類(class),函數(shù)(function),異常處理(exception),包括表(list)和詞典(dictionary)在內(nèi)的核心數(shù)據(jù)類型,以及模塊(module)為基礎(chǔ)的拓展系統(tǒng)。
Python 語法很多來自 C,但又受到 ABC 語言的強(qiáng)烈影響。來自 ABC 語言的一些規(guī)定直到今天還富有爭議,比如強(qiáng)制縮進(jìn)。但這些語法規(guī)定讓 Python 容易讀。另一方面,Python 聰明的選擇服從一些慣例(特別是 C 語言的慣例)。比如使用等號賦值,使用 def 來定義函數(shù)。Guido 認(rèn)為,如果“常識”上確立的東西,沒有必要過度糾結(jié)。

Python 從一開始就特別在意可拓展性(extensibility)。Python 可以在多個層次上拓展。從高層上,你可以引入.py 文件。在底層,你可以引用 C 語言的庫。Python 程序員可以快速的使用 Python 寫.py 文件作為拓展模塊。但當(dāng)性能是考慮的重要因素時,Python 程序員可以深入底層,寫 C 程序,編譯為.so 文件引入到 Python 中使用。Python 就好像是使用鋼構(gòu)建房一樣,先規(guī)定好大的框架。而程序員可以在此框架下相當(dāng)自由的拓展或更改。
Python 的流行
最初的 Python 完全由 Guido 本人開發(fā)。Python 得到 Guido 同事的歡迎。他們迅速的反饋使用意見,并參與到 Python 的改進(jìn)。Guido 和一些同事構(gòu)成 Python 的核心團(tuán)隊。他們將自己大部分的業(yè)余時間用于 hack Python (也包括工作時間,因為他們將 Python 用于工作)。隨后,Python 拓展到 CWI 之外。Python 將許多機(jī)器層面上的細(xì)節(jié)隱藏,交給編譯器處理,并凸顯出邏輯層面的編程思考。Python 程序員可以花更多的時間用于思考程序的邏輯,而不是具體的實現(xiàn)細(xì)節(jié) (Guido 有一件 T 恤,寫著:人生苦短,我用 Python)。這一特征吸引了廣大的程序員。Python 開始流行。
Python 擅長處理高級數(shù)學(xué)、金融、時間序列和統(tǒng)計學(xué)。繪制圖形也很容易。在網(wǎng)絡(luò)編程的某些方面也有一些優(yōu)勢。此外,Python 可以做很多事情,覆蓋范圍很廣(雖然其他軟件在深入挖掘時可能會做得更好)。 在將來,Python 可能被廣泛應(yīng)用于深度學(xué)習(xí)、機(jī)器學(xué)習(xí)和人工智能。待到 5G 全面到來,由于它的簡單易學(xué),也許會擁有更大的市場。
Python 擅長處理高級數(shù)學(xué)、金融、時間序列和統(tǒng)計學(xué)。繪制圖形也很容易。在網(wǎng)絡(luò)編程的某些方面也有一些優(yōu)勢。此外,Python 可以做很多事情,覆蓋范圍很廣。下面列舉了一些 Python 的主要應(yīng)用領(lǐng)域:
- 云計算: 云計算最火的語言, 典型應(yīng)用 OpenStack
- WEB 開發(fā): 眾多優(yōu)秀的 WEB 框架,眾多大型網(wǎng)站均為 Python 開發(fā),Youtube, Dropbox, 豆瓣。。。, 典型 WEB 框架有 Django
- 科學(xué)運(yùn)算、人工智能: 典型庫 NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系統(tǒng)運(yùn)維: 運(yùn)維人員必備語言
- 金融:量化交易,金融分析,在金融工程領(lǐng)域,Python 不但在用,且用的最多,而且重要性逐年提高。原因:作為動態(tài)語言的 Python,語言結(jié)構(gòu)清晰簡單,庫豐富,成熟穩(wěn)定,科學(xué)計算和統(tǒng)計分析都很牛逼,生產(chǎn)效率遠(yuǎn)遠(yuǎn)高于 c,c++,java,尤其擅長策略回測
- 圖形 GUI: PyQT, WxPython,TkInter
Python 在一些公司的應(yīng)用:
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google 廣告等項目都在大量使用 Python 開發(fā)
- CIA: 美國中情局網(wǎng)站就是用 Python 開發(fā)的
- NASA: 美國航天局(NASA)大量使用 Python 進(jìn)行數(shù)據(jù)分析和運(yùn)算
- YouTube:世界上最大的視頻網(wǎng)站 YouTube 就是用 Python 開發(fā)的
- Dropbox:美國最大的在線云存儲網(wǎng)站,全部用 Python 實現(xiàn),每天網(wǎng)站處理 10 億個文件的上傳和下載
- Instagram:美國最大的圖片分享社交網(wǎng)站,每天超過 3 千萬張照片被分享,全部用 python 開發(fā)
- Facebook:大量的基礎(chǔ)庫均通過 Python 實現(xiàn)的
- Redhat: 世界上最流行的 Linux 發(fā)行版本中的 yum 包管理工具就是用 python 開發(fā)的
- 豆瓣: 公司幾乎所有的業(yè)務(wù)均是通過 Python 開發(fā)的
- 知乎: 國內(nèi)最大的問答社區(qū),通過 Python 開發(fā)(國外 Quora)
- 春雨醫(yī)生:國內(nèi)知名的在線醫(yī)療網(wǎng)站是用 Python 開發(fā)的
- 除上面之外,還有搜狐、金山、騰訊、盛大、網(wǎng)易、百度、阿里、淘寶 、土豆、新浪、果殼等公司都在使用 Python 完成各種各樣的任務(wù)。
Python 的未來
在將來,Python 可能被廣泛應(yīng)用于深度學(xué)習(xí)、機(jī)器學(xué)習(xí)和人工智能。待到 5G 全面到來,由于它的簡單易學(xué),也許會擁有更大的市場。而在薪資待遇上,Python 開發(fā)者也沒有讓人失望。通過分析來自全國的 12809 份樣例資料可以發(fā)現(xiàn),全國 Python 工程師的平均月資能夠達(dá)到 19160 元,其中 20 - 30K 的工程師數(shù)量更是超過了四成。 雖然各大城市的薪資標(biāo)準(zhǔn)略有不同,但是這也確實傳遞出一個信息,如果想要年薪百萬、一夜暴富、成功走上人生巔峰,對比 Java、C、C++ 等老牌語言,Python 是個絕佳的嘗試。

參考資料:
http://www.cnblogs.com/vamei
https://www.cnblogs.com/xincai/p/7058551.html