python能用來作什麼?這3大主要用途你必定要知道!(實用)

導讀:若是你想學Python,或者你剛開始學習Python,那麼你可能會問:「我能用Python作什麼?」

 

這個問題很差回答,由於Python有不少用途。html

 

可是隨着時間,我發現有Python主要有如下三大主要應用:前端

 

  • Web開發python

  • 數據科學:包括機器學習、數據分析和數據可視化算法

  • 腳本數據庫

 

本文將依次介紹。小程序

 

做者:YK Sugi後端

編譯:Mika瀏覽器

來源:CDA數據分析師(ID:cdacdacda)服務器

 

640?wx_fmt=jpeg

 

 

01 Web開發網絡

 

Django和Flask等基於Python的Web框架最近在Web開發中很是流行。

 

這些Web框架能夠幫助你用Python編寫服務器端代碼(後端代碼)。這是在你的額服務器上運行的代碼,而不是運行在用戶設備和瀏覽器的代碼(前端代碼)。

 

1. 爲何須要Web框架

 

由於用Web框架能夠更容易地構建通用後端邏輯。這包括將不一樣的URL映射到Python代碼塊,處理數據庫以及生成用戶在瀏覽器中看到的HTML文件。

 

2. 應該使用哪一種Python Web框架

 

Django和Flask是最流行的兩種Python Web框架。若是你剛剛入門,我建議使用其中一種。

 

3. Django和Flask有什麼區別

 

Gareth Dwyer 關於這個問題有一篇出色的文章,在這裏我引用幾段:

 

主要區別

 

Flask:可以實現簡單、靈活和細緻的控制。並能讓你本身決定實現方式。

 

Django:提供了全面的體驗:你能夠得到管理面板、數據庫接口、ORM(對象關係映射)以及開箱即用的應用程序和項目的目錄結構。

 

如何選擇

 

Flask:若是你關注的是經驗和學習的機會,或者你想更多地控制使用哪些組件,好比你想使用哪些數據庫以及如何與其進行交互。

 

Django:若是你關注最終產品,或者你正在研究一個簡單的應用,好比新聞網站、網店或博客,而且你但願有單一實現的方式。

 

換句話說,若是你是初學者,Flask多是更好的選擇,由於它要掌握的組件更少。此外,若是你想要更多的定製,那就選Flask。

 

根據個人數據工程師朋友Jonathan T Ho的說法,因爲Flask 的靈活性,在建立REST API時,Flask 比Django 更適合。

 

另外一方面,若是你想直接構建一些東西,Django可能會讓你更快實現。

 

 

02 數據科學

 

數據科學,這裏包括機器學習,數據分析和數據可視化。

 

1. 機器學習是什麼 

 

假設你想開發一個可以自動檢測圖片內容的程序。給出圖1,你但願程序識別這是一隻狗。

 

640?wx_fmt=jpeg

▲圖1

 

給出圖2,但願程序能識別這是一張桌子。

 

640?wx_fmt=jpeg

▲圖2

 

你可能會說,我能夠寫一些代碼來作到這點。例如,若是圖片中有不少淺棕色像素,那麼能夠識別是狗。

 

或者能夠檢測圖片中的邊緣,若是有不少直的邊緣,那麼就是桌子。

 

但這種方法很快就很差用了。若是圖片中的狗不是棕色毛的怎麼辦?若是圖片只顯示桌子的圓形部分怎麼辦?

 

這裏就須要用到機器學習了。

 

機器學習經過實現算法,該算法可以自動檢測輸入中的模式。

 

例如,你將1000張狗的圖片和1000張桌子的圖片輸入給機器學習算法,讓它掌握狗和桌子間的區別。那麼當你給出新的圖片讓它識別是狗仍是桌子時,它就可以進行判斷。

 

這有點相似孩子學習新事物的方式。孩子是如何學習認知狗或桌子的呢?就是經過大量的例子。

 

你不會明確告訴孩子:「若是某個毛茸茸的東西有淺棕色的毛髮,那麼就多是狗。」

 

你會說,「這是狗,這也是狗。而這是桌子,那個也是桌子。「

 

機器學習算法的方式大體相同。

 

咱們能夠將相同的想法應用於:

 

  • 推薦系統:好比YouTube,亞馬遜和Netflix

  • 人臉識別

  • 語音識別

 

以及其餘應用。

 

你聽過的熱門機器學習算法包括:

 

  • 神經網絡

  • 深度學習

  • 支持向量機

  • 隨機森林

 

你可使用上述任何算法來解決前面提到的圖片標籤問題。

 

2. 將Python用於機器學習

 

有一些熱門的機器學習庫和Python框架。其中兩個最熱門的是scikit-learn和TensorFlow。

 

  • scikit-learn帶有一些內置的熱門機器學習算法。

  • TensorFlow是一個低級庫,能讓你建立自定義機器學習算法。

 

若是你剛開始進行機器學習項目,我會建議你先從scikit-learn開始。若是你開始遇到效率問題,那麼可使用TensorFlow。

 

3. 數據分析和數據可視化

 

假設你在一家在線銷售產品的公司工做。做爲數據分析師,你會繪製這樣的條形圖。

 

640?wx_fmt=png

▲條形圖1 - 用Python生成

 

從這張圖中能夠看到在某個週日,男性用戶購買了400多件產品,女性用戶購買了350件產品。

 

做爲數據分析師,對此你會提出一些可能的解釋。明顯的解釋是,該產品在男性用戶中更受歡迎。另外一種是樣本量過小,而這種差別是偶然的。還可能呢是因爲某種緣由,男性每每在週日才購買該產品。

 

爲了理解哪一種解釋是正確的,你能夠繪製另外一個圖。

 

640?wx_fmt=png

▲折線圖1 - 用Python生成

 

不止看週日的數據,還要看到一週的數據。從這張圖表中能夠看出,在不一樣的日子裏這種差別比較一致。

 

從這個分析中你會得出結論:這種產品在男性中比在女性中更受歡迎。

 

但若是你看到像這樣的圖表呢?

 

640?wx_fmt=png

▲折線圖2 - 用Python生成

 

那麼,怎麼解釋週日的差別呢?

 

你可能會說,也許出於某種緣由男性只在週日纔會更多地購買這款產品。或許這只是巧合。

 

我在谷歌和微軟工做時所作的數據分析工做與這個例子很是類似,只是更復雜一些。在谷歌時我使用Python進行分析,而我在微軟使用JavaScript。

 

在這兩家公司我都使用SQL從數據庫中提取數據。而後,我用Python和Matplotlib(在谷歌)或JavaScript和D3.js(在微軟)來可視化和分析這些數據。

 

4. 使用Python進行數據分析/可視化

 

進行數據可視化時,Matplotlib是很是熱門的庫。

 

Matplotlib很棒,由於:

 

  • 容易上手

  • seaborn等庫是基於它的,學習Matplotlib能夠幫助你之後學習其餘庫。

 

5. 如何用Python學習數據分析/可視化

 

你首先應該瞭解數據分析和可視化的基礎知識。在學習了數據分析和可視化的基礎知識以後,學習統計學基礎知識也將會頗有幫助。

 

640?wx_fmt=jpeg

 

 

03 腳本

 

什麼是腳本?

 

腳本一般是指編寫可以自動執行簡單任務的小程序。

 

我曾經在日本的一家小型創業公司工做,公司有郵件支持系統,這用來回復客戶經過郵件發送給咱們的問題。

 

在那兒工做時,個人任務是計算包含關鍵字的郵件數量,以便分析咱們收到的電子郵件。這能夠手動完成,但我寫了一個簡單的腳原本自動執行此任務。

 

當時咱們使用了Ruby,但對於這類任務Python也是不錯的選擇。Python適合這類任務,由於它語法簡單,易於編寫,並且進行測試也很快。

 

 

04 其餘用途

 

1. 嵌入式應用

 

我不是這方面的專家,但我知道Python能夠與Rasberry Pi一塊兒用,在硬件愛好者中很流行。

 

2. 遊戲開發

 

你能夠用PyGame來開發遊戲,但這並非最受歡迎的遊戲引擎。你能夠用它來開發業餘愛好項目,但若是你對遊戲開發很認真,建議不要選它。

 

我建議使用Unity的C#,這是最受歡迎的遊戲引擎之一。它能讓你爲許多平臺開發遊戲,包括Mac、Windows、iOS和Android。

 

3. 桌面應用

 

你能夠用Python的Tkinter,但這並非最熱門的選擇。Java,C#和C ++等語言彷佛更受歡迎。

 

最近,一些公司也開始使用JavaScript來開發桌面應用程序。例如,Slack的桌面應用是Electron構建的。它能讓你用JavaScript構建桌面應用程序。

 

就我的而言,若是我要開發桌面應用,我會選擇使用JavaScript。它能讓你從新使用網絡版本的一些代碼。

 

固然,我並非桌面應用的專家,因此若是你有不一樣的見解,評論中告訴我。

 

640?wx_fmt=jpeg

 

4. Python 3仍是Python 2

 

我會推薦Python 3,由於它更新並且更受歡迎。

 

5. 後端代碼與前端代碼的區別

 

假設你想開發相似Instagram的產品,那麼你須要爲想要支持類型的設備建立前端代碼。

 

你可能會用到:

 

  • 面向iOS端的Swift 

  • 面向Android的Java

  • 面向Web瀏覽器的JavaScript

 

每組代碼將在每種類型的設備上運行。這類代碼將決定應用的佈局樣式,點擊按鍵的樣式等。

 

可是,您還須要存儲用戶信息和照片的功能。你要將它們存儲在服務器上,而不只僅存儲在用戶的設備上,以便每一個用戶的關注者均可以查看其照片。

 

這時須要用到後端代碼/服務器端代碼。你須要編寫後端代碼來執行如下操做:

 

  • 記錄關注狀況

  • 壓縮照片,從而不佔用太多存儲空間

  • 在發現功能中向每一個用戶推薦照片和新賬戶

 

這是後端代碼和前端代碼之間的區別。

 

順便說一下,Python不是編寫後端代碼的惟一選擇,還有基於JavaScript的Node.js等選擇。

 

原文連接:

https://medium.freecodecamp.org/what-can-you-do-with-python-the-3-main-applications-518db9a68a78

相關文章
相關標籤/搜索