Guido van Rossum在 1996年寫到:
六年前,在1989年12月,我在尋找一門「課餘」編程專案來打發聖誕節前後的時間。我的辦公室會關門,但我有一台家用電腦,而且沒有太多其它東西。我決定為當時我正構思的一個新的手稿語言寫一個直譯器,它是ABC語言的後代,對UNIX / C程式設計師會有吸引力。作為一個略微有些無關想法的人,和一個蒙提·派森的飛行馬戲團(Monty Python’s Flying Circus)的狂熱愛好者,我選擇了Python作為專案的標題。
Python之父
Python的歷史
- python 1 : 1994 ~ 2000 (2000後即不再維護更新)
- python 2: 2000 ~ 2010 (2020後即不再維護更新)
- python 3: 2008 ~ until now
Python的設計哲學:
Python設計哲學強調程式碼的可讀性與簡潔的語法,其優雅語法和動態類型使其成為大多數平台上許多領域程式編寫和快速應用程序開發時的理想程式語言。當您在Python的shell當中鍵入import this,您將會充分了解Python設計的哲學與定位。
>>> import this
The Zen of Python, by Tim PetersBeautiful 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!
Python的運用:
常規軟體開發
Python支援函數語言程式設計和OOP面向物件程式設計,能夠承擔任何種類軟體的開發工作,因此常規的軟體開發、指令碼編寫、網路程式設計等都屬於標配能力。科學計算
隨著NumPy,SciPy,Matplotlib,Enthoughtlibrarys等眾多程式庫的開發,Python越來越適合於做科學計算、繪製高質量的2D和3D影象。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程式設計語言,比Matlab所採用的指令碼語言的應用範圍更廣泛,有更多的程式庫的支援。雖然Matlab中的許多高階功能和toolbox目前還是無法替代的,不過在日常的科研開發之中仍然有很多的工作是可以用Python代勞的。自動化運維
這幾乎是Python應用的自留地,作為運維工程師首選的程式語言,Python在自動化運維方面已經深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動化平臺。雲端計算
開源雲端計算解決方案OpenStack就是基於Python開發的,搞雲端計算的同學都懂的。Web開發
基於Python的Web開發框架不要太多,比如耳熟能詳的Django,還有Tornado,Flask。其中的Python+Django架構,應用範圍非常廣,開發速度非常快,學習門檻也很低,能夠幫助你快速的搭建起可用的WEB服務。網路爬蟲
也稱網路蜘蛛,是大資料行業獲取資料的核心工具。沒有網路爬蟲自動地、不分晝夜地、高智慧地在網際網路上爬取免費的資料,那些大資料相關的公司恐怕要少四分之三。能夠編寫網路爬蟲的程式語言有不少,但Python絕對是其中的主流之一,其Scripy爬蟲框架應用非常廣泛。資料分析
在大量資料的基礎上,結合科學計算、機器學習等技術,對資料進行清洗、去重、規格化和針對性的分析是大資料行業的基石。Python是資料分析的主流語言之一。人工智慧
Python在人工智慧大範疇領域內的機器學習、神經網路、深度學習等方面都是主流的程式語言,得到廣泛的支援和應用。