Python是什麼?你真的瞭解Python嗎?

1、Python是什麼
相信混跡IT界的不少朋友都知道,Python是近年來最火的一個熱點,沒有之一。從性質上來說它和咱們熟知的C、java、php等沒有什麼本質的區別,也是一種開發語言,並且已經進階到主流的二十多種開發語言的top 3(數據源自最新的TIOBE排行榜)。php

來頭不小啊!二十多種主流的開發語言,我該從哪個開始呢?  人生苦短,我用 python!前端

 

2、Python的由來和發展趨勢
Python的前世源自鼻祖「龜叔」。1989年,吉多·範羅蘇姆(Guido van Rossum)在阿姆斯特丹爲了打發無聊的聖誕節,決心開發一個新的腳本解釋程序,自此Python和創始人「龜叔」開始進入公衆視野。他但願這個新的叫作Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。java

1991年,第一個Python編譯器誕生。它基於C語言實現,並可以調用C語言的庫文件。後面歷經版本的不斷換代革新,Python走到了很是具備里程碑意義的一個節點,即2004的2.4版本誕生了目前最流行的WEB框架Django!六年後Python發展到2.7版本,這是目前爲止2.x版本中最新且較爲普遍使用版本。python

2.7版本的誕生不一樣於以往2.x版本的垂直換代邏輯,它是2.x版本和3.x版本之間過渡的一個橋樑,以便最大程度上繼承3.x版本的新特性,同時儘可能保持對2.x的兼容性。web

所以3.x版本在2.7版本以前就已經問世,從2008年的3.0版本開始,python3.x系呈迅猛發展之勢,版本更新活躍,一直髮展到如今最新的3.7版本。3.7版本也是目前3.x系列中主流且普遍使用的版本,後續相關程序的demo,默認均基於3.7版本展開。shell

3、Python 2 VS Python 3
許多初學者會糾結於從2.x版本仍是3.x版本開始python學習之路。這裏簡要對比下我的學習瞭解到的二者的差別:數據庫

3.x版本中 PRINT IS A FUNCTION,使用起來更簡單方便;
33.x版本中默認使用unicode編碼,媽媽不再用擔憂你的程序編碼問題了;
33.x版本中某些庫進行了更名,具體還有待在後續學習中深刻展開;
3目前3.x版本還不能徹底支持Twisted module,這恐怕是3.x版本中最大的遺憾。也不要過於糾結這點,聽說官方正在彌補這個不足,同時也相信能有辦法解決的:)
長江後浪推前浪,python的將來是屬於3.x系列的,官方宣佈2020年以後再也不支持2.x系列中最nb的2.7版本,2.x版本將逐漸壽終正寢,最終被銘刻在開發語言的豐碑上。
因此學習3.x版本沒錯的!編程

 

4、Python的優缺點後端


二十多種主流開發語言,python何以能在20多年間以如此迅猛之勢橫掃七大洲八大洋呢?這都是它自身優良的特性決定的.python3.x

Python優勢:

「優雅」、「明確」、「簡單」
這是python的定位,使得python程序看上去簡單易懂,初學者容易入門,學習成本更低。但隨着學習的不但深刻,python同樣能夠知足勝任複雜場景的開發需求。引用一個說法,Python的哲學是就是簡單優雅,儘可能寫容易看明白的代碼,儘可能寫少的代碼。
開發效率高
python做爲一種高級語言,具備豐富的第三方庫,官方庫中也有相應的功能模塊支持,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容。所以開發者無需事必躬親,遇到主流的功能需求時能夠直接調用,在基礎庫的基礎上施展拳腳,能夠節省你不少功力和時間成本,大大下降開發週期。
無需關注底層細節
Python做爲一種高級開發語言,在編程時無需關注底層細節(如內存管理等)。
功能強大
Python是一種前端後端通吃的綜合性語言,功能強大,php能勝任的角色它都能作,至於後端如何勝任,須要在後續學習中逐步領悟。
可移植性
Python能夠在多種主流的平臺上運行,開發程序時只要繞開對系統平臺的依賴性,則能夠在無需修改的前提下運行在多種系統平臺上,具體有待後續學習中深刻展開。


一個硬幣總有兩面,那麼Python有缺點嗎?答案是確定的,總結以下:

Python缺點:

代碼運行速度慢
由於Python是一種高級開發語言,不像c語言同樣能夠深刻底層硬件最大程度上挖掘榨取硬件的性能,所以它的運行速度要遠遠慢於c語言。另一個緣由是,Python是解釋型語言,你的代碼在執行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程很是耗時,因此很慢。而C程序是運行前直接編譯成CPU能執行的機器碼,因此很是快。
但須要注意的是,這種慢對於不須要追求硬件高性能的應用場合來說根本不是問題,由於它們比較的數量級根本不是用戶能直觀感覺到的!想一想程序執行所需的時間數量級?例如開發一個下載MP3的網絡應用程序,C程序的運行時間須要0.001秒,而Python程序的運行時間須要0.1秒,慢了100倍,但因爲網絡更慢,須要等待1秒,用戶體驗幾乎沒有差異,除非你用很是精確的計時器來計時。

 

5、Python的適用領域
Python典型的適用領域以下:

雲計算開發
雲計算領域最火的語言,典型表明openstack。
web開發
衆多優秀的web框架,衆多優秀的大型web站點(Youtube,instagrm,豆瓣等)均基於python開發。
系統運維
各類自動化工具的開發,CMDB、監控告警系統、堡壘機、配置管理&批量分發工具等都可以搞定。這是本身須要重點學習的領域。
科學計算、人工智能
據網上了解用於圍棋大戰的谷歌阿發狗就使用了python開發(但估計只是部分而已)。
圖形GUI處理
暫時沒多少體會,後續領悟吧。
網絡爬蟲
這年頭網絡爬蟲無處不在,不少都是基於python開發,包括谷歌的爬蟲。這是爬蟲工程師的必備工具。


6、哪些地方在用Python
來幾個鮮活的知名公司應用案例,以示敬意:

谷歌:Google app engine、google earth、爬蟲、廣告等Youtube: 世界最大的在線視頻網站基於python開發,好強大Instagram:美國最大的圖片分享網站,所有基於python開發facebook:大量的基礎庫基於python開發Redhat:yum包管理工具基於python開發

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。