<wbr id="juant"></wbr>
  • <wbr id="juant"></wbr>
    更多課程 選擇中心


    Python培訓

    400-111-8989

    數百種編程語言,而我為什么要學 Python?

    • 發布:努力學習的
    • 來源: CSDN
    • 時間:2017-11-17 16:16

    如果讓你從數百種的編程語言中選擇一個入門語言?你會選擇哪一個?

    是應用率最高、長期霸占排行榜的常青藤 Java?是易于上手,難以精通的 C?還是在游戲和工具領域仍占主流地位的 C++?亦或是占據 Windows 桌面應用程序半壁江山的 C#?......

    我想,每個人可能會根據工作要求的必然條件、興趣愛好的充分條件,做出相應不同的選擇。也有很多工程師在學習一門新的技術時,都會擔心自己所學的技術是否會越來越流行,盡量去避免學習了一個非常小眾和冷門的技術。這種擔憂是可以理解的,畢竟,一門技術使用的人越多,對于早期學習這門技術的工程師來說,就有越多的好處和優勢。與此同時,如果學習了一門冷門的技術,不但英雄無用武之地,而且,在求職市場上也沒有什么優勢。要問我的入門編程語言選擇,我首選一定是 Python,其具體原因可以引用一位網友的回答,「學完 Python,可以上天」。

    圖片來源于網絡

    Python 流行度

    如果大家身處互聯網,一定能夠切身地感受到 Python 語言的流行程度。Python 語言由于其簡單易學、語法優美、應用領域廣泛等諸多優點,俘獲了大批的粉絲。但是,拿不出確切的證據,很多開發者也無法說服自己靜下心來學習。接下來我們就用數據來說話。

    編程語言排行榜

    首先,我們了解一下近期編程語言排行榜中,Python 語言排名的變化。TIOBE 每個月發布的編程語言排行榜是編程語言流行趨勢的一個指標,每個月更新。這份排行榜排名基于互聯網上有經驗的工程師、課程和第三方廠商的數量,使用搜索引擎進行計算而得,一定程度上反應了編程語言的熱度。

    2017年9月TIOBE編程語言排行榜

    2017年10月TIOBE編程語言排行榜

    2017年11月TIOBE編程語言排行榜

    從近三個月的排行看,Python 一直穩定在排行榜的前五名。但編程語言排行榜僅能反應 Python 語言當下的流行程度,并不能回答 Python 是否越來越流行這個問題。不過,我們可以從 TIOBE 發布的歷史數據中找到一些線索。在 2015 年 2 月份發布的 TIOBE 編程語言排行榜中,Python 還排在第 8 名的位置,短短兩年半的時間,Python 語言已經躥升到第 4 名,其上升速度不可謂不快。

    Google trends

    既然 TIOBE 的編程語言排行榜是根據搜索引擎得到的數據,那么,我們也可以通過搜索引擎得到 Python 的搜索指數,通過搜索指數來查看 Python 語言熱度的變化。圖1.1 給出了最近 4 年,Python 這個關鍵詞的 Google 搜索指數。

    圖 1.1 Python 的 Google 搜索指數

    圖1.1中可以看到,從全球范圍來看,Python 語言是越來越流行的,其熱度超過了以往任何時候。從中國的搜索指數來看,Python 語言已經不是越來越流行這么簡單了,而是出現了爆發式的增長。2014 年以前,Python 在中國都屬于小眾語言,從 2014 年開始,Python 在中國越來越火爆。一個有趣的事實是,在圖 1.1 給出的 Python 搜索指數中,Python 在中國的搜索每年都會有一個非常明顯的、向下的尖刺。這個尖刺所在的時間正好與春節的時間吻合,說明春節對所有中國人都是一個重要的節日,在春節期間,很少有人還在專研技術了。

    微信搜索指數

    我們再來看一下最新發布的微信搜索指數中,Python 語言的熱度如何。圖 1.2 給出了Python、Java、PHP 和 Ruby 的微信搜索指數對比圖。

    圖 1.2 Python的微信搜索指數

    由于微信最多支持 4 個關鍵詞進行比較,因此,我們選擇了 Java、PHP、Ruby 與 Python 進行比較。選擇 Java 是因為它是一門比 Python 使用更加廣泛的編程語言;選擇 PHP 是因為它被認為是“世界上最好的”編程語言;選擇 Ruby 是因為,它是所有編程語言中,與 Python 定位最近接近的編程語言。從圖中可以看出,Python 語言和 Java 語言的微信搜索指數遙遙領先,并且,Python 語言的微信搜索指數比 Java 語言還要略高一點。

    基于以上的編程語言排行榜、Google 搜索指數和微信搜索指數這幾個不同的數據來源,檢視了 Python 語言的流行程度。現在,我們可以非常明確的得出一個結論——Python 語言越來越流行,而且現在非常火。

    那么為什么 Python 語言會越來越流行呢?

    原因諸多,如越來越多的工程師使用 Python 進行大數據處理;科研工作者開始使用 Python 來進行數據分析;系統管理員使用 Python 管理 Linux 系統;開源的云計算平臺 OpenStack 使用 Python 語言開發;很多編程愛好者使用 Python 進行爬蟲等。但是,筆者認為,Python 語言之所以越來越流行,使用越來越廣泛,主要還是得益于其自身的諸多優點。

    對 Python 的愛與恨:那些不得不說的優缺點

    顯著的優點

    Python 語言擁有諸多的優點,這其中,以下幾個優點特別顯著:

    簡單易學:Python 語言相對于其他編程語言來說,屬于比較容易學習的一門編程語言,它注重的是如何解決問題而不是編程語言的語法和結構。正是因為 Python 語言簡單易學,所以,已經有越來越多的初學者選擇 Python 語言作為編程的入門語言。例如,在浙江省 2017 年高中信息技術改革中,《算法與程序設計》課程將使用 Python 語言替換原有的 VB 語言。

    語法優美:Python 語言力求代碼簡潔、優美。在 Python 語言中,采用縮進來標識代碼塊,通過減少無用的大括號,去除語句末尾的分號等視覺雜訊,使得代碼的可讀性顯著提高。閱讀一段良好的 Python 程序就感覺像是在讀英語一樣,它使你能夠專注于解決問題,而不用太糾結編程語言本身的語法。

    豐富強大的庫:Python 語言號稱自帶電池(Battery Included),寓意是 Python 語言的類庫非常的全面,包含了解決各種問題的類庫。無論實現什么功能,都有現成的類庫可以使用。如果一個功能比較特殊,標準庫沒有提供相應的支持,那么,很大概率也會有相應的開源項目提供了類似的功能。合理使用 Python 的類庫和開源項目,能夠快速的實現功能,滿足業務需求。

    開發效率高:Python 的各個優點是相輔相成的。例如,Python 語言因為有了豐富強大的類庫,所以,Python 的開發效率能夠顯著提高。相對于 C、C++ 和 Java 等編譯語言,Python 開發者的效率提高了數倍。實現相同的功能,Python 代碼的文件往往只有 C、C++ 和 Java 代碼的 1/5~1/3。雖然 Python 語言擁有很多吸引人的特性,但是,各大互聯網公司廣泛使用 Python 語言,很大程度上是因為 Python 語言開發效率高這個特點。開發效率高的語言,能夠更好的滿足互聯網快速迭代的需求,因此,Python 語言在互聯網公司使用非常廣泛。

    應用領域廣泛:Python 語言的另一大優點就是應用領域廣泛,工程師可以使用 Python 做很多的事情。例如,Web 開發、網絡編程、自動化運維、Linux 系統管理、數據分析、科學計算、人工智能、機器學習等等。Python 語言介于腳本語言和系統語言之間,我們根據需要,既可以將它當做一門腳本語言來編寫腳本,也可以將它當做一個系統語言來編寫服務。

    不可忽視的缺點

    毫無疑問,Python 確實有用很多的優點,每一個優點看起來都非常吸引人。但是,Python 并不是沒有缺點的,最主要的缺點有以下幾個:

    Python 的執行速度不夠快。當然,這也不是一個很嚴重的問題,一般情況下,我們不會拿 Python 語言與 C/C++ 這樣的語言進行直接比較。在 Python 語言的執行速度上,一方面,網絡或磁盤的延遲,會抵消掉部分 Python 本身消耗的時間;另一方面,因為 Python 特別容易和 C 結合起來,因此,我們可以通過分離一部分需要優化速度的應用,將其轉換為編譯好的擴展,并在整個系統中使用 Python 腳本將這部分應用連接起來,以提高程序的整體效率。

    Python 的 GIL 鎖限制并發:Python 的另一個大問題是,對多處理器支持不好。如果讀者接觸 Python 時間比較長,那么,一定聽說過 GIL 這個詞。GIL 是指 Python 全局解釋器鎖(Global Interpreter Lock),當 Python 的默認解釋器要執行字節碼時,都需要先申請這個鎖。這意味著,如果試圖通過多線程擴展應用程序,將總是被這個全局解釋器鎖限制。當然,我們可以使用多進程的架構來提高程序的并發,也可以選擇不同的 Python 實現來運行我們的程序。

    Python 2 與 Python 3 不兼容:如果一個普通的軟件或者庫,不能夠做到后向兼容,那么,它會被用戶無情的拋棄了。在 Python 中,一個槽點是 Python 2 與 Python 3 不兼容。因為 Python 沒有向后兼容,給所有的 Python 工程師帶來了無數的煩惱。

    如何上手?

    了解了 Python 的整體趨勢及優缺點,接下來自然是如何學習 Python?在此筆者的建議是:

    找一本淺顯易懂比較好的教程,無須多種選擇,僅精選一本,從頭到尾看完。將教程中的案例自己親手實踐一遍。

    通過實際項目練手。如果僅是紙上談兵,可能過目就忘,所以最好是要有真實的項目做。注意,真實項目不一定非要是商業項目,例如自己動手搭建網站,其關鍵是要核心功能完整。

    最好能找到一個已經會 Python 的人。問他一點學習規劃的建議,然后在遇到卡殼的地方找他指點。這樣會事半功倍。但是,要學會搜索,學會如何更好地提問。

    以下,本文也整理了一些有關 Python 學習及指導資料:

    不少開發者糾結 Python 的入門究竟該從 2.x 還是 3.x 開始學起?畢竟 Python 2.x 與 3.x 不兼容。 所以我們該如何抉擇?又該如何快速著手呢?詳情可查看「瘋狂上漲的 Python,開發者應從 2.x 還是 3.x 著手?」。

    Python 編程的核心知識有哪些?是否有比較通俗易懂的經驗分享?詳情可查看「一文總結學習 Python 的 14 張思維導圖」。

    技巧篇:「編寫高質量Python代碼的5個優化技巧」

    Python 的案例分享:

    「一小時入門 Python 3 網絡爬蟲」

    「從 500 萬條的微博語料對鹿晗、關曉彤微博的熱門評論進行情感分析」

    「國慶去哪里人最多?用 Python 抓取的熱力圖告訴你!」

    「用不到 50 行的 Python 代碼構建最小的區塊鏈」

    最后,在選擇使用哪一門編程語言之前,我還想提醒讀者的是——“世界上只有兩種編程語言,一種是天天被人吐槽但卻被廣泛使用的編程語言,一種則是無人問津沒有存在感的編程語言”。Python 語言作為排名第一的動態類型語言,自然有它的道理。如果我們充分了解它的優缺點,在使用的時候,取其精華去其糟粕,那么,Python 一定是工程師解決問題的一把利劍。

    而你為什么學 Python 呢?歡迎在下方留言,分享你的獨特見解,也希望能為程序員界的后起之秀一些編程語言抉擇的方向。

    作者:賴明星,資深云平臺開發工程師、數據庫內核開發工程師和高級運維工程師,現就職于騰訊CDG(企業發展事業群),曾就職于網易,網易云數據庫MySQL云平臺、MongoDB云平臺的核心開發人員,網易大規模MySQL系統運維的負責人,獨立完成MySQL存儲引擎的TNT自動化研發和測試。出版作品《Python Linux系統管理與自動化運維》。

    整理:蘇宓。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:為什么要學習python進階的知識
    下一篇:大家都在學Python開發,你和別人的差距在哪?

    Python培訓班線上線下哪種靠譜

    python線上培訓班學費一般多少

    Python線下培訓班有哪些

    一篇文章帶你了解python和c語言的區別

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    天天日天天射天天干天天伊|奇米电影|奇米网_奇米首页|奇米首页 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>