您的位置:首頁>正文

人生苦短,為何一定要學Python?(文末有贈書)

人生苦短, 我用 Python , 不知道從什麼時候開始, 這句話開始流行。

人們可能會說, 2017 年是 Python 輝煌的一年。 畢竟在這一年中, Python 的增長速度令人驚豔。

主要程式設計語言的增長趨勢, 圖片來自 Stack Overflow

在GitHub 2017年度報告中, Python 超越 Java 成第二受歡迎語言。 在 ranked.com 的排名中, Python 是 2017 年最受歡迎人工智慧程式設計語言(第二是 C++, R 並未上榜)。

根據 Stack Overflow 流量統計, 2017 年 6 月, Python 第一次成為高收入國家 Stack Overflow 訪問量最大的標籤。

在 TIOBE 2018 年 4 月程式設計語言排行榜前 20 名中, Python 已躍居到第四位, 前三分別為為 Java , C、C++。

在最新的 HackerRank 2018 開發者技能調查中, 根據 HackerRank 的愛恨指數資料, Python 基本贏得了全年齡段開發者的芳心。

隨著 Python 進入小學課本、Python 進入浙江省高考、電腦二級考試加入了“Python 語言程式設計”科目、國務院發佈《新一代人工智慧發展規劃的通知》等新聞的不斷出現,

Python 的這股火就越來越熱。

天呐擼!小學生以後不僅會打王者農藥, 還能手把手教你玩轉 Python……據小編掐指一算, 這恐怕會讓無數八零後、九零後家長甚是憂愁——今後如何給孩子輔導作業啊???

那麼, 為什麼用 Python, 它能用在哪兒, 能做什麼呢?

利用 Python 進行資料分析

利用 Python 爬取網頁數據

利用 Python 寫小遊戲

用 Python 寫一個自動搶票的腳本

Python 有什麼優點

Python 在約 40 年前出現, 現在已經有數以千計基於這項技術的網站和軟體專案。 Python 因其獨有的特點從眾多開發語言中脫穎而出,深受世界各地的開發者喜愛。

下面,我們列舉了 Python 最顯著的一面。所有這些優點使它非常流行,也讓眾多跨國公司選擇了 Python 作為他們的程式設計語言。

簡單,我們可以說 Python 是簡約的語言,非常易於讀寫,遇到問題時,程式師可以把更多的注意力放在問題本身上,而不用花費太多精力在程式語言、語法上。

免費,Python 是免費開源的。這意味著程式師不用花錢,就可以共用、複製和交換它。

這也幫助 Python 形成了強壯的社區,使它更加完善,技術發展更快。專業人士可以在社區和初學者中分享他們的知識和經驗。那麼找到你可以使用的開源庫會得到什麼好處?削減一半的項目支出!

相容性,Python 相容眾多平臺,所以開發者不會遇到使用其他語言時常會遇到的困擾。

物件導向,Python 既支持面向過程,也支持物件導向程式設計。在面向過程程式設計中,程式師可以複用代碼;在物件導向程式設計中,使用基於資料和函數的對物件。儘管物件導向的程式語言通常十分複雜,Python 卻設法保持簡潔。

庫,Python 社區創造了一大堆各種各樣的 Python 庫。在他們的幫助下,你可以管理文檔,執行單元測試、資料庫、Web 流覽器、電子郵件、密碼學、圖形化使用者介面和更多的東西。所有東西包括在標準庫,然而,除了它,還有很多其他的庫。

Python 語言的用途

多年來,Python 在各種流行程式設計語言中一直排名靠前。它幾乎可以適用任何開發,它旨在提高程式師的開發效率而不在於他們編的代碼。

Python 適用于網站、桌面應用開發,自動化腳本,複雜計算系統,科學計算,生命支援管理系統,物聯網,遊戲,機器人,自然語言處理等很多方面。

而且,既使對於那些從沒有開發經驗的人來講,Python 的代碼也是簡潔易懂的。

由於 Python 程式碼簡單,所以與其他程式語言相比,後期的程式維護更容易,更舒心。從商業角度來看,需要的成本降低,程式師的效率提高。

誰使用 Python

Python 開發人員社區不斷壯大,支援函式庫持續增多,使 Python 成為世界上功能最豐富的程式設計語言之一,可以適用于任何專案開發。

但我們仍要指出,Python 在科學領域非常流行,特別是在資料採擷和機器學習等方面。

為了全面理解 Python 相對於其他語言的優勢,我們將把 Python 和最流行的 Web 技術做下比較,先從 PHP 開始。

Python 和 PHP

從開發的角度來看,PHP 是面向 Web 的語言。PHP 應用程式更像是一組單獨的腳本,甚至只是一個單獨入口。

而 Python 是多用途語言,也可以用於 Web 開發,基於 Python 的 Web 應用是載入到記憶體的完整應用,有自己的內容聲明,保存所有的查詢和請求。

選擇 Python 還是 PHP 進行 Web 應用開發需要注意以下幾點,下面是 Python 和 PHP Web 開發的比較。

通用性

當今時代,趨勢和流行非常重要,一些客戶和產品負責人只想使用最流行最熱門的技術來開發他們的專案,造成了技術精湛的開發人員卻完全沒有客戶和工作的情況出現。

所以在開始學習任何東西前,要確保你要學的技術在未來 1、5 或 10 年內仍保持流行,不會被遺忘。

不過,你大可不必擔心,因為 PHP 和 Python 都屬於世界上最流行的程式設計語言。

PHP 用於構建 Wikipedia,Yahoo,WordPress,Friendster,MailChimp,Flickr 等許多“巨頭”。

但不要以為 Python 沒什麼用,它也用來構建了 YouTube,Instagram,桌上出版的Dropbox,Reddit,Bitbucket,Quora,Spotify,Pinterest,Facebook 的內部服務,以及 PayPal 系統的一部分。

框架

當你選擇一項技術的時候,工具的多樣性也是極其重要的,它會使你的工作簡單、方便。如果一個技術為不同的任務提供了多種工具,程式師就不必每件事都要從頭開始了。

PHP 最流行的框架是 Laravel,Symfony,CodeIgniter,Yii 1 and 2,Phalcon 和其他一些。

這些工具能幫你創建功能強大而整潔的應用程式,而 Python 卻沒有這麼多引以為豪的框架,最好用的是 Django 和 Flask,但是,我們可以向你保證,隨著 Python 社區的成長,這種情況會很快改變。

學習

這通常是學生第一個想要知道的問題,學習教育的過程越容易,意味著開始工作和賺錢越快。

Python 當然是這類的贏家,它的語法容易,簡單易學,而 PHP 卻不是這樣。掌握 PHP 需要花費很多的時間和努力。

Python 允許你犯些小錯但不會破壞代碼,給新手一些信心繼續學習。從新手的角度來看,想學一些更容易、更靈活的技術,而 Python 正是這樣的技術。

你可以用 Python 創建安全的應用程式,但使用PHP卻需要額外的工具。不過不要忘記,PHP 是專門用於 Web 開發的,也的確用在這方面較多。

Java 和 Python 哪個更好?一些開發人員聲稱 Python 比 Java 更有效率。但這應該先弄清 Python 和 Java 之間的區別是什麼。

Java 和 Python 的區別

Java 是一種嚴格的類型語言,這意味著必須顯式聲明變數名。相比之下,動態類型的 Python 則不需要聲明變數。

在程式設計語言上有許多關於動態和靜態類型的爭論,但有一點應該注意:Python 是一種語法簡單的功能強大的語言,能夠通過編寫腳本就提供優秀的解決方案,並能夠快捷地部署在各個領域。

Java 可以創建跨平臺的應用程式,而 Python 幾乎相容當前所有作業系統。對新手來講,Python 比 Java 更容易上手,而且代碼易讀性強,但是如果你想你的代碼可以在任何地方都能執行的話,那麼還是選擇 Java 吧。

Java 比 Python 更複雜,沒有技術背景的人學起來並非易事。

Python 和 C#

現在再來看下 C#。它們的技術差異很大,但都適用于 Web 開發。

Python 和 C# 的區別

簡而言之,Python 原本就被設計的類似用英語表達一樣,只要你使用合適的變數名稱,許多運算式就很容易讀懂。

另外,由於 Python 語法簡單,沒有像句法括弧和大量的修飾詞,各種類 C 的構造和不同的初始化變數,所以 Python 寫的代碼易讀易學。

同時,C# 從 C++ 和 Java 遺傳了很多原始表達的類 C 語法,更重要的是,C# 語法使我們必須遵循一定的規則來編寫自已的方法或是繼承類,伴隨而來的是另一大串修飾詞,還有一點不能忘記的是要把程式碼片段放在括弧內。

而 Python 只用 Shift+S 鍵就可以讓代碼看上去很整潔。至於編寫腳本方面,值得一提的是 Python 的腳本是真正的腳本,能夠被解譯器執行。

你可以用任何編輯器打開它,修改後就可以立即運行。這在手邊沒有 IDE 或編譯器的時候優勢十分明顯。而且使用 Python 更容易編寫跨平臺的腳本,甚至都不需要重新編譯。

但是,我們要指出 Python 的一個不足,就是需要在機器上安裝腳本解譯器,至少要在一個包或可執行檔裡打包上一個解譯器。

從而使腳本的大小從幾 KB 增加到十幾 M,不過對於現代電腦來說,十幾兆的空間需求基本可以忽略不計,所以這也不是什麼大問題。

而 C# 需要 IDE 來編寫程式,C# 的一個好處是,當你編寫基於 Windows 平臺的腳本時,它有強大的各類 Windows 系統元件支援。

例如,註冊表、WMI、網路等內置工具。C# 可以使用 WINFORMS,你需要的時候可以很容易地創建圖形化介面。

沒法說 Python 和 C# 哪個更好,Python 比 C# 更容易學,開源庫更多,但 C# 的標準庫比 Python 的更好,其性能更高。

Python 和 Ruby

就第一語言而言,Ruby 和 Python 是最受歡迎的。Ruby 是非常流行的構建網站技術,其中最著名的是 Twitter(早期版本),Basecamp,Github,Airbnb,Slideshare,Groupon。

Python 和 Ruby 的區別

Ruby 和 Python 都是物件導向的語言,都是動態和靈活的。這些技術的主要區別在於他們解決問題的方式。Ruby 提供了不同的方法而 Python 通常只有一個。這個事實既是優勢也是劣勢。

最流行的 Ruby 框架是 Ruby on rails。它和 Django 非常類似,因為這兩個框架都是為了解決相同的任務。

如果我們比較這些技術的社區,我們會發現他們幾乎是一樣的,然而形成這些團體的人是不同的。

Python 在資料科學和數學方面很受歡迎,所以在這裡你可以找到很多的學者和教授。

記住,當你開發 Web 應用程式時,可以用 RoR 實現,也可以用 Django,兩者都是快速高效的。如果開發偏重于大量計算和資料處理的應用,應該選擇 Python。

任何技術成功的秘密在於圍繞它所構建的社區,不同人群協同工作來確定其未來的發展演變,Python 的支持者是世界上規模最大和構成最多樣化的一個團隊,不僅有數以千計的個人開發者。

而且還有諸如穀歌,Yandex,Dropbox,Mozilla,微軟(在 Visual Studio 中使用),英特爾等許多巨頭公司,他們和其他許多公司一起,已經用 Python 創建了世界上最大的和最受歡迎的項目。

我國人工智慧的飛速發展,無疑讓 Python 成為 AI 時代下的新寵兒,作為最接近人工智慧語言的 Python 越來越受到國家和社會的重視。

Python 現如今已經逐步在網路爬蟲、資料分析、AI、機器學習、Web 開發、金融、運維、測試等多個領域紮根壯大。

隨著它的被認可程度逐漸提高,學習並掌握這門語言的人群比例越來越大,無數公司也將為搶佔該領域高精尖人才做著殊死搏鬥!

可以說,未來誰擁有人工智慧領域的技術權威,誰將會擁有新時代互聯網最高話語權。

另一方面,Python 方向崗位的招聘人數需求以及薪資均在水漲船高。下面看一組 2018 年最新的薪酬資料:

儘管大家會調侃,又騙我學 XX,但是,學好 Python,必將讓你在程式設計生涯中大刀闊斧,勇闖天涯!

所以如果你對自己的專業/工作不滿意,現在正是進入人工智慧領域學習就業/轉業的最佳時機。那如何系統學習 Python 呢?一般我們會經歷以下幾個階段。

如何系統學習 Python

瞭解 Python 程式設計基礎

一是變數、程式設計規範、基礎語法等,這也是能夠上手編寫 Python 代碼的前提。

二是資料結構,字串、清單、字典、元組這些需要非常熟練,資料類型將貫穿你整個程式設計的始終。

這個部分一些簡單的練習就是,自己構造一個資料類型,然後去實現基本的用法。

比如你自己構造一個清單,實現清單中資料的訪問、更新、刪除等基本操作,比如 len()、max()、min() 函數,以及 append()、count()、extend() 等方法。

函數和方法是實現資料增刪改查的基本途徑,如果你在實際操作中遇到資料操作的問題,可以在具體的資料類型下查找相關用法。

Python 函數及流程控制

學習 Python 的函數和控制語句,是真正去解決問題的過程。如何實現判斷和循壞,如何將固定的功能模組封裝成函數,這些不僅是寫出代碼的必要條件,也是訓練程式設計思維的必經之路。

函數這個部分無外乎函數的定義、函式呼叫以及參數傳遞,但是要能夠嫺熟地寫出函數實現對應的功能,需要注意的細節很多,也需要不斷地訓練。

流程控制則相對要好掌握一些,條件陳述式和循壞語句在不同的場景下練習幾遍,知道判斷和迴圈實現的過程,基本上就沒問題了。

其實到這個地方,基本的 Python 知識你已經掌握了,你可以自己去做一些小專案,比如猜數位、各種轉換器、記帳工具……

利用 Python 做些事情

通常在學習一段時間之後,你就會有自我懷疑的過程,貌似真的懂了,但是離做出實際的東西又很遠,這些東西是否有用?

這個時候不妨瞭解一些協力廠商庫,你可以做更多的事情。比如用 pandas 作資料處理,用 Matplotlib 做資料視覺化分析,用 BeautifulSoup 寫爬蟲,利用 Flask 搭建網站……

這些別人搭好的輪子,你直接拿來用就可以了。當然像寫爬蟲和網站,你還需要瞭解其他方面的一些知識(比如 HTTP、HTML、JS、資料庫等)。

對於不同的庫,內部的方法、函數你還需要去熟悉,開始的時候先掌握少部分最常用的方法,在遇到實際的問題的時候,再去查對應的更多的用法,這樣會更高效。

深入 Python 程式設計

其實第三個階段反復練習實踐,你已經基本具備一些工作的技能了,比如 Python 資料分析、網路爬蟲、寫工具腳本……

首先你要瞭解 Python 的高級特性,如反覆運算器、生成器、裝飾器等,瞭解類和物件導向的理念。

深入下去,你可以去探索 Python 的實現原理,Python 的性能優化,跳出 Python 語言本身,去瞭解電腦的交互原理,還有很長的路要走,但並不是每一個人都需要這個過程。

但這些高屋建瓴的東西,又是你在這個領域立足生根的重要條件,對於堅定走技術方向的人來說,這個過程是有必要的。這個時候你再去做應用層面的一些東西,又會有更加深刻的理解。

總結下來,學習 Python,最常見的坑有這些:

很難找到合適且優質的學習資源,難以下手,或者隨便找一些材料開始學習,極其容易從入門到放棄。

遇到問題不知道如何尋找解決辦法,甚至連問題都描述不清楚,經常被一些細小的問題卡住,學習效率不高。

在理論學習中無法自拔,學習很久之後,發現還是不知道如何在實際的專案中去應用,缺乏解決問題的能力。

看到別人的案例覺得好像是那麼回事,但是自己去寫代碼的時候依然很困難,無法訓練程式設計思維。

福利來啦

身為程式師的您對學習 Python 有哪些好的建議?掃描下方二維碼,關注51CTO技術棧公眾號。歡迎在技術棧微信公眾號留言探討,小編將選出留言最精彩的 10 名網友,送出《Python資料分析從入門到精通》圖書一本~活動截止時間 4 月 20 日十二時整,特別鳴謝電子工業出版社為本次活動提供的圖書贊助。

內容簡介

如果你已經決定學習 Python 資料分析,但是之前沒有程式設計經驗,那《Python資料分析從入門到精通》你絕不能錯過。Python 資料分析“四劍客”在本書上會進行詳細深入的介紹。

本書詳細地介紹了 IPython、Numpy、pandas、Matplotlib 庫的組成與使用,為科學計算相關人員提供了有用的參考資料。採取循序漸進的寫作風格,對於工具的安裝、使用步驟、方法技巧逐步展開,加以圖解和應用場景,即使完全不懂 Python 和資料分析的人員,也可以流暢地讀完本書。

Python 因其獨有的特點從眾多開發語言中脫穎而出,深受世界各地的開發者喜愛。

下面,我們列舉了 Python 最顯著的一面。所有這些優點使它非常流行,也讓眾多跨國公司選擇了 Python 作為他們的程式設計語言。

簡單,我們可以說 Python 是簡約的語言,非常易於讀寫,遇到問題時,程式師可以把更多的注意力放在問題本身上,而不用花費太多精力在程式語言、語法上。

免費,Python 是免費開源的。這意味著程式師不用花錢,就可以共用、複製和交換它。

這也幫助 Python 形成了強壯的社區,使它更加完善,技術發展更快。專業人士可以在社區和初學者中分享他們的知識和經驗。那麼找到你可以使用的開源庫會得到什麼好處?削減一半的項目支出!

相容性,Python 相容眾多平臺,所以開發者不會遇到使用其他語言時常會遇到的困擾。

物件導向,Python 既支持面向過程,也支持物件導向程式設計。在面向過程程式設計中,程式師可以複用代碼;在物件導向程式設計中,使用基於資料和函數的對物件。儘管物件導向的程式語言通常十分複雜,Python 卻設法保持簡潔。

庫,Python 社區創造了一大堆各種各樣的 Python 庫。在他們的幫助下,你可以管理文檔,執行單元測試、資料庫、Web 流覽器、電子郵件、密碼學、圖形化使用者介面和更多的東西。所有東西包括在標準庫,然而,除了它,還有很多其他的庫。

Python 語言的用途

多年來,Python 在各種流行程式設計語言中一直排名靠前。它幾乎可以適用任何開發,它旨在提高程式師的開發效率而不在於他們編的代碼。

Python 適用于網站、桌面應用開發,自動化腳本,複雜計算系統,科學計算,生命支援管理系統,物聯網,遊戲,機器人,自然語言處理等很多方面。

而且,既使對於那些從沒有開發經驗的人來講,Python 的代碼也是簡潔易懂的。

由於 Python 程式碼簡單,所以與其他程式語言相比,後期的程式維護更容易,更舒心。從商業角度來看,需要的成本降低,程式師的效率提高。

誰使用 Python

Python 開發人員社區不斷壯大,支援函式庫持續增多,使 Python 成為世界上功能最豐富的程式設計語言之一,可以適用于任何專案開發。

但我們仍要指出,Python 在科學領域非常流行,特別是在資料採擷和機器學習等方面。

為了全面理解 Python 相對於其他語言的優勢,我們將把 Python 和最流行的 Web 技術做下比較,先從 PHP 開始。

Python 和 PHP

從開發的角度來看,PHP 是面向 Web 的語言。PHP 應用程式更像是一組單獨的腳本,甚至只是一個單獨入口。

而 Python 是多用途語言,也可以用於 Web 開發,基於 Python 的 Web 應用是載入到記憶體的完整應用,有自己的內容聲明,保存所有的查詢和請求。

選擇 Python 還是 PHP 進行 Web 應用開發需要注意以下幾點,下面是 Python 和 PHP Web 開發的比較。

通用性

當今時代,趨勢和流行非常重要,一些客戶和產品負責人只想使用最流行最熱門的技術來開發他們的專案,造成了技術精湛的開發人員卻完全沒有客戶和工作的情況出現。

所以在開始學習任何東西前,要確保你要學的技術在未來 1、5 或 10 年內仍保持流行,不會被遺忘。

不過,你大可不必擔心,因為 PHP 和 Python 都屬於世界上最流行的程式設計語言。

PHP 用於構建 Wikipedia,Yahoo,WordPress,Friendster,MailChimp,Flickr 等許多“巨頭”。

但不要以為 Python 沒什麼用,它也用來構建了 YouTube,Instagram,桌上出版的Dropbox,Reddit,Bitbucket,Quora,Spotify,Pinterest,Facebook 的內部服務,以及 PayPal 系統的一部分。

框架

當你選擇一項技術的時候,工具的多樣性也是極其重要的,它會使你的工作簡單、方便。如果一個技術為不同的任務提供了多種工具,程式師就不必每件事都要從頭開始了。

PHP 最流行的框架是 Laravel,Symfony,CodeIgniter,Yii 1 and 2,Phalcon 和其他一些。

這些工具能幫你創建功能強大而整潔的應用程式,而 Python 卻沒有這麼多引以為豪的框架,最好用的是 Django 和 Flask,但是,我們可以向你保證,隨著 Python 社區的成長,這種情況會很快改變。

學習

這通常是學生第一個想要知道的問題,學習教育的過程越容易,意味著開始工作和賺錢越快。

Python 當然是這類的贏家,它的語法容易,簡單易學,而 PHP 卻不是這樣。掌握 PHP 需要花費很多的時間和努力。

Python 允許你犯些小錯但不會破壞代碼,給新手一些信心繼續學習。從新手的角度來看,想學一些更容易、更靈活的技術,而 Python 正是這樣的技術。

你可以用 Python 創建安全的應用程式,但使用PHP卻需要額外的工具。不過不要忘記,PHP 是專門用於 Web 開發的,也的確用在這方面較多。

Java 和 Python 哪個更好?一些開發人員聲稱 Python 比 Java 更有效率。但這應該先弄清 Python 和 Java 之間的區別是什麼。

Java 和 Python 的區別

Java 是一種嚴格的類型語言,這意味著必須顯式聲明變數名。相比之下,動態類型的 Python 則不需要聲明變數。

在程式設計語言上有許多關於動態和靜態類型的爭論,但有一點應該注意:Python 是一種語法簡單的功能強大的語言,能夠通過編寫腳本就提供優秀的解決方案,並能夠快捷地部署在各個領域。

Java 可以創建跨平臺的應用程式,而 Python 幾乎相容當前所有作業系統。對新手來講,Python 比 Java 更容易上手,而且代碼易讀性強,但是如果你想你的代碼可以在任何地方都能執行的話,那麼還是選擇 Java 吧。

Java 比 Python 更複雜,沒有技術背景的人學起來並非易事。

Python 和 C#

現在再來看下 C#。它們的技術差異很大,但都適用于 Web 開發。

Python 和 C# 的區別

簡而言之,Python 原本就被設計的類似用英語表達一樣,只要你使用合適的變數名稱,許多運算式就很容易讀懂。

另外,由於 Python 語法簡單,沒有像句法括弧和大量的修飾詞,各種類 C 的構造和不同的初始化變數,所以 Python 寫的代碼易讀易學。

同時,C# 從 C++ 和 Java 遺傳了很多原始表達的類 C 語法,更重要的是,C# 語法使我們必須遵循一定的規則來編寫自已的方法或是繼承類,伴隨而來的是另一大串修飾詞,還有一點不能忘記的是要把程式碼片段放在括弧內。

而 Python 只用 Shift+S 鍵就可以讓代碼看上去很整潔。至於編寫腳本方面,值得一提的是 Python 的腳本是真正的腳本,能夠被解譯器執行。

你可以用任何編輯器打開它,修改後就可以立即運行。這在手邊沒有 IDE 或編譯器的時候優勢十分明顯。而且使用 Python 更容易編寫跨平臺的腳本,甚至都不需要重新編譯。

但是,我們要指出 Python 的一個不足,就是需要在機器上安裝腳本解譯器,至少要在一個包或可執行檔裡打包上一個解譯器。

從而使腳本的大小從幾 KB 增加到十幾 M,不過對於現代電腦來說,十幾兆的空間需求基本可以忽略不計,所以這也不是什麼大問題。

而 C# 需要 IDE 來編寫程式,C# 的一個好處是,當你編寫基於 Windows 平臺的腳本時,它有強大的各類 Windows 系統元件支援。

例如,註冊表、WMI、網路等內置工具。C# 可以使用 WINFORMS,你需要的時候可以很容易地創建圖形化介面。

沒法說 Python 和 C# 哪個更好,Python 比 C# 更容易學,開源庫更多,但 C# 的標準庫比 Python 的更好,其性能更高。

Python 和 Ruby

就第一語言而言,Ruby 和 Python 是最受歡迎的。Ruby 是非常流行的構建網站技術,其中最著名的是 Twitter(早期版本),Basecamp,Github,Airbnb,Slideshare,Groupon。

Python 和 Ruby 的區別

Ruby 和 Python 都是物件導向的語言,都是動態和靈活的。這些技術的主要區別在於他們解決問題的方式。Ruby 提供了不同的方法而 Python 通常只有一個。這個事實既是優勢也是劣勢。

最流行的 Ruby 框架是 Ruby on rails。它和 Django 非常類似,因為這兩個框架都是為了解決相同的任務。

如果我們比較這些技術的社區,我們會發現他們幾乎是一樣的,然而形成這些團體的人是不同的。

Python 在資料科學和數學方面很受歡迎,所以在這裡你可以找到很多的學者和教授。

記住,當你開發 Web 應用程式時,可以用 RoR 實現,也可以用 Django,兩者都是快速高效的。如果開發偏重于大量計算和資料處理的應用,應該選擇 Python。

任何技術成功的秘密在於圍繞它所構建的社區,不同人群協同工作來確定其未來的發展演變,Python 的支持者是世界上規模最大和構成最多樣化的一個團隊,不僅有數以千計的個人開發者。

而且還有諸如穀歌,Yandex,Dropbox,Mozilla,微軟(在 Visual Studio 中使用),英特爾等許多巨頭公司,他們和其他許多公司一起,已經用 Python 創建了世界上最大的和最受歡迎的項目。

我國人工智慧的飛速發展,無疑讓 Python 成為 AI 時代下的新寵兒,作為最接近人工智慧語言的 Python 越來越受到國家和社會的重視。

Python 現如今已經逐步在網路爬蟲、資料分析、AI、機器學習、Web 開發、金融、運維、測試等多個領域紮根壯大。

隨著它的被認可程度逐漸提高,學習並掌握這門語言的人群比例越來越大,無數公司也將為搶佔該領域高精尖人才做著殊死搏鬥!

可以說,未來誰擁有人工智慧領域的技術權威,誰將會擁有新時代互聯網最高話語權。

另一方面,Python 方向崗位的招聘人數需求以及薪資均在水漲船高。下面看一組 2018 年最新的薪酬資料:

儘管大家會調侃,又騙我學 XX,但是,學好 Python,必將讓你在程式設計生涯中大刀闊斧,勇闖天涯!

所以如果你對自己的專業/工作不滿意,現在正是進入人工智慧領域學習就業/轉業的最佳時機。那如何系統學習 Python 呢?一般我們會經歷以下幾個階段。

如何系統學習 Python

瞭解 Python 程式設計基礎

一是變數、程式設計規範、基礎語法等,這也是能夠上手編寫 Python 代碼的前提。

二是資料結構,字串、清單、字典、元組這些需要非常熟練,資料類型將貫穿你整個程式設計的始終。

這個部分一些簡單的練習就是,自己構造一個資料類型,然後去實現基本的用法。

比如你自己構造一個清單,實現清單中資料的訪問、更新、刪除等基本操作,比如 len()、max()、min() 函數,以及 append()、count()、extend() 等方法。

函數和方法是實現資料增刪改查的基本途徑,如果你在實際操作中遇到資料操作的問題,可以在具體的資料類型下查找相關用法。

Python 函數及流程控制

學習 Python 的函數和控制語句,是真正去解決問題的過程。如何實現判斷和循壞,如何將固定的功能模組封裝成函數,這些不僅是寫出代碼的必要條件,也是訓練程式設計思維的必經之路。

函數這個部分無外乎函數的定義、函式呼叫以及參數傳遞,但是要能夠嫺熟地寫出函數實現對應的功能,需要注意的細節很多,也需要不斷地訓練。

流程控制則相對要好掌握一些,條件陳述式和循壞語句在不同的場景下練習幾遍,知道判斷和迴圈實現的過程,基本上就沒問題了。

其實到這個地方,基本的 Python 知識你已經掌握了,你可以自己去做一些小專案,比如猜數位、各種轉換器、記帳工具……

利用 Python 做些事情

通常在學習一段時間之後,你就會有自我懷疑的過程,貌似真的懂了,但是離做出實際的東西又很遠,這些東西是否有用?

這個時候不妨瞭解一些協力廠商庫,你可以做更多的事情。比如用 pandas 作資料處理,用 Matplotlib 做資料視覺化分析,用 BeautifulSoup 寫爬蟲,利用 Flask 搭建網站……

這些別人搭好的輪子,你直接拿來用就可以了。當然像寫爬蟲和網站,你還需要瞭解其他方面的一些知識(比如 HTTP、HTML、JS、資料庫等)。

對於不同的庫,內部的方法、函數你還需要去熟悉,開始的時候先掌握少部分最常用的方法,在遇到實際的問題的時候,再去查對應的更多的用法,這樣會更高效。

深入 Python 程式設計

其實第三個階段反復練習實踐,你已經基本具備一些工作的技能了,比如 Python 資料分析、網路爬蟲、寫工具腳本……

首先你要瞭解 Python 的高級特性,如反覆運算器、生成器、裝飾器等,瞭解類和物件導向的理念。

深入下去,你可以去探索 Python 的實現原理,Python 的性能優化,跳出 Python 語言本身,去瞭解電腦的交互原理,還有很長的路要走,但並不是每一個人都需要這個過程。

但這些高屋建瓴的東西,又是你在這個領域立足生根的重要條件,對於堅定走技術方向的人來說,這個過程是有必要的。這個時候你再去做應用層面的一些東西,又會有更加深刻的理解。

總結下來,學習 Python,最常見的坑有這些:

很難找到合適且優質的學習資源,難以下手,或者隨便找一些材料開始學習,極其容易從入門到放棄。

遇到問題不知道如何尋找解決辦法,甚至連問題都描述不清楚,經常被一些細小的問題卡住,學習效率不高。

在理論學習中無法自拔,學習很久之後,發現還是不知道如何在實際的專案中去應用,缺乏解決問題的能力。

看到別人的案例覺得好像是那麼回事,但是自己去寫代碼的時候依然很困難,無法訓練程式設計思維。

福利來啦

身為程式師的您對學習 Python 有哪些好的建議?掃描下方二維碼,關注51CTO技術棧公眾號。歡迎在技術棧微信公眾號留言探討,小編將選出留言最精彩的 10 名網友,送出《Python資料分析從入門到精通》圖書一本~活動截止時間 4 月 20 日十二時整,特別鳴謝電子工業出版社為本次活動提供的圖書贊助。

內容簡介

如果你已經決定學習 Python 資料分析,但是之前沒有程式設計經驗,那《Python資料分析從入門到精通》你絕不能錯過。Python 資料分析“四劍客”在本書上會進行詳細深入的介紹。

本書詳細地介紹了 IPython、Numpy、pandas、Matplotlib 庫的組成與使用,為科學計算相關人員提供了有用的參考資料。採取循序漸進的寫作風格,對於工具的安裝、使用步驟、方法技巧逐步展開,加以圖解和應用場景,即使完全不懂 Python 和資料分析的人員,也可以流暢地讀完本書。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示