【小說+乾貨】Python的十大神器
來自專欄猿論
相傳在上古時期,混沌未分,鴻蒙初現,天地間產生十件威力無比的神器,分別是:東皇鍾、軒轅劍、盤古斧、煉妖壺、昊天塔、伏羲琴、神農鼎、崆峒印、崑崙鏡、女媧石。十大神器各自擁有不同的特點,只有大功德,大智慧的人才可得之。
那麼在我們的Python中,也存在十大神器,它們有的像盤古斧那樣穿梭太虛,有的像昊天塔那樣吸星換月,還有的如神農鼎,熬煉草藥,化腐朽為神奇...
在正式開始之前,我們需要先介紹一個Python這個世界的起源和它的優缺點,以及未來的主要方向,然後我們就會揭開Python十大神器的神秘面紗,如果你想知道Python中哪個庫代表著無堅不摧的軒轅劍,哪個代表穿梭太虛的盤古斧,那就關注我的慕課賬號(這個廣告打的可以),以便看到我的最新動態~
Python是1989年的聖誕節期間,我們的龜叔,為了打發無聊的時間而開發的一個編程語言,但是另龜叔萬萬沒想到的是,Python誕生以後,它簡潔的語法,強大的功能和學習的簡單,立刻受到了全球開發者的青睞,在TIOBE最新的2016年6月出具的一份全球編程語言排行榜中,Python已經超越了PHP和C#成為排行第四的最受歡迎的編程語言,僅次於JAVA和C/C++。
並且Python目前的就業環境非常的好,它在數據採集和數據分析上出色的能力和強大的第三方庫,有如當年互聯網造就了Java一樣,Python是否能否應運成為下一個Java我們不得而知,但是可以肯定的是,已經有越來越多的人被Python的簡潔和開箱即用的特點所吸引。而目前Python工程師的數量還很少,就業競爭壓力不像Java那麼大,往往Java一個職位同時有十幾個人競爭。
那麼我們來總結一下Python的優點:
1.語法簡潔。Python去掉了傳統C++或Java使用大括弧來區分一個方法體或者類的形式,而是採用相同的縮進來表示一個類或者一個方法的有效範圍。這強制性的使每個程序員都必須按照這種風格書寫,而不會出現Java程序員喜歡左大括弧跟在方法名後面,C++的程序員喜歡左大括弧另起一行這種書寫風格,也不會導致學習C++的程序員學習Java以後還保持C++的書寫風格使得Java程序員感覺很怪異,也不會有if else後面不跟大括弧的行為,讓人難以看懂裡面的代碼邏輯,這些在Python中統統不存在。
2.開箱即用。無論是Java還是C/C++,它的安裝和使用往往都是讓人很費解的,特別是新手在學習的時候,相信大家都有被Java環境變數折磨的經歷。Python不存在這種問題,只需要去Python的官網,下載最新版的Python,雙擊運行,安裝的時候選擇把Python加入系統環境變數中,它就會自動完成這一切。
3.海納百川。學習過Java的同學肯定知道,Java一個很大的優勢就是第三方的jar包非常多,但是這和Python比起來,簡直是滄海一粟,Python擁有數不盡的第三方庫。可以這麼說,任何你能想到的,能夠使用編程語言實現的功能,Python都擁有已經實現了這些功能的第三方庫,你只需要安裝它就可以了。
4.什麼叫包依賴?Java雖然擁有第三方的jar包,甚至還有spring這樣逆天的超級框架,而且還有Apache這樣的第三方組織不斷的發展壯大它,可以說Java的親爹sun以及後爸Oracle對於Java的貢獻都不及Apache。Java能有今天的地位,和Apache是分不開的,當然這其中自然和Java本身在伺服器上出色的能力分不開的,爛泥是扶不上牆的,如果Java本身不行,無論是誰也無法讓它這麼的流行和受歡迎。但是Java有一個令人非常頭疼的事情,那就是各種的jar包他們之間的依賴關係,而且每個項目都需要自己手動去導包,可能有人會跟我說有maven啊,沒錯,今天的Java程序員可以輕鬆的在Apache的maven主頁下載到maven,通過填寫配置文件來解決這一問題。但是,還需要寫配置文件。Python就不存在這種問題了,通過pip install 庫名,Python就會自動把需要的文件以及依賴的文件,自動安裝到本地,在項目中使用import命令就可以引入,不需要自己把庫文件放在項目的路徑裡面。而且Python的包管理工具會自動的幫我們管理他們之前的依賴關係,不會出現重複安裝的問題。
Python這麼吊,它家裡人知道嗎?這麼完美還學什麼其他語言,乾脆都去學習Python算了,事實上不是這樣的,Python有很多不如其它語言的地方。
那麼我們來看一下它的缺點:
1.運行速度慢。這是Python的硬傷,作為解釋型的腳本語言,Python的運行速度不要說和C/C++比,就是和Java比差的遠。事實上Java8的虛擬機,如今的運行速度已經和C/C++不相上下,國外有人使用Java製作大型的3D遊戲,畢竟如今的CPU執行能力已經相當的恐怖了,真正的性能瓶頸在於磁碟IO,以及網路的帶寬。那麼這個缺點重要嗎,我們首先來看一下Python的主要應用場景就是在於網路採集和數據分析,以及網站後台上面。我們以網路為例,假設一個網站他的後台用的是Java而另一個用的是Python,而他們的前台頁面完全相同。由於網路的傳輸,用戶打開這個網站下載圖片,JS,CSS,HTML,需要耗費一秒。Java虛擬機在10毫秒內完成了這一切,用戶打開網站一共等待了1.01秒。而Python使用了100毫秒去完成這一切,用戶打開網站一共等待了1.1秒。對於用戶來說,1.01秒和1.1秒沒有任何的區別。
2.代碼不能加密。我們都知道Java的代碼可以被編譯成位元組碼文件,然後放在伺服器上面運行,也就是說,我製作一個Java程序,我想給別人使用,我就可以把位元組碼文件發給他。對方能夠正常使用,但是並不能知道我的源代碼。而Python的程序文件就是它的源文件,所以Python的程序想要給別人運行,必須要給別人源代碼。那麼現在是一個開源的時代,連.NET都開源了,你還怕什麼?
3.伺服器集群。Java有很多成熟的伺服器集群的方案,然而Python由於近幾年才在國內流行起來,國內使用Python做後台的大網站,只有眾所周知的豆瓣,可想而知,使用Java在集群時遇到一些問題可以很輕鬆的找到解決方案,而Python可能就需要依賴國外的大神了。
- 操作系統和大型3D。Python是做不了操作系統和大型的3D應用的,它的運行速度決定了,Python目前和這個行業是無緣的,操作系統還是適合用C或者C++這些來寫。
所以,正如我們擁有走路、自行車、公交、地鐵、汽車、輪船、火車、高鐵、飛機這些交通工具一樣,我們不會因為有了飛機就不走路或者不坐公交地鐵。雖然飛機的速度快,安全性好,但是飛機需要的起飛和降落平台太大,成本高,不會有人從家去超市這段距離去坐飛機的。
正如交通工具一樣,編程語言各有所長,Python的誕生就是為了解決其他編程語言的不足之處的,但是Python不可能取代Java,Java也取代不了Python。正是這些一個一個的編程語言,才帶給我們程序世界絢爛多姿的色彩,才能讓我們在進行一個項目時選擇最合適的方案。
十大神器,有緣者得之,接下來我們就一起領略一下Python中十大神器的威力。
下章預告:吸星換月昊天塔之Django作者:秋名山車神
鏈接:https://www.imooc.com/article/9837
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作
推薦閱讀:
【重磅】認證作者招募 | 打造個人品牌 so easy !
有獎徵文003期|程序員進階路上,哪本書你認為很不錯,對你幫助很大?
適合Python 新手的5大練手項目,你練了么?
精通Python爬蟲-03-狩獵大師
Python新手寫出漂亮的爬蟲代碼1——從html獲取信息
推薦閱讀:
※20分鐘輕鬆解決安卓手機分區問題 乾貨篇
※八字命理基礎知識乾貨之,白話說十神
※我該走專業路線還是管理路線?
※定向越野乾貨--怎麼挑選最佳越野路線
※胡楊論八字:干支的生克沖合會(修訂版 純乾貨)