Python入門

Python 是什麼?Python 可以做什麼?新手必看 Python 入門初心者懶人包

Last Updated on

隨著大數據、人工智慧的發展越來越盛行,使得最常用來開發相關技術的 Python 程式語言在近幾年高速成長並日漸普及,其好入門、易上手的特性,讓新手不管有沒有資工、程式背景都能輕易駕馭。

而 Python 是什麼?為什麼這麼熱門?你也對 Python 有興趣嗎?

如果你是個初學者,一定要好好看完這篇 Python 入門初心者文章!

Python 是什麼

Python

Python 是一種直譯式物件導向、功能強大的高階程式語言,其設計強調程式碼的可讀性以及簡潔的語法,使用空格縮排來劃分程式碼區塊,不像其他常見的程式語言大多使用大括號或關鍵詞。

因此,Python 程式的結構清楚明瞭,比起其他常見的程式語言(例如 CJava 等),Python 讓開發者能用更少的程式碼達到同樣的結果


Python 的實務應用

Python 最方便也最厲害的就是擁有非常多函式庫(Library),任何能想到的功能或方法都已有人整合起來,只要善加利用,就能節省大量開發時間,尤其對人力少又需搶時間發展產品的新創來說,這真的超棒!

Python 的實務應用主要有:

數據處理與分析

資料處理、統計與分析不管在商業領域或科學研究上一直都極重要,以往大多用 Excel 工具來完成這項任務,但隨著硬體設備提升、互聯網發達,取得並儲存海量資料已經不像從前那麼困難又高成本。

大數據(Big Data)分析能大幅降低統計誤差,增加準確率,慢慢發展為新趨勢,不過 Excel 能處理的資料量有限,使得 R 和 Python 漸漸興起。

Python 有許多專門處理數據分析的函式庫可以方便運用,再加上與 R 相比,除了統計用途,還多了能建構應用程式、系統或網站的功用,所以更通用許多。

Big Data

人工智慧

Python 可以很方便處理並分析數據的特性,更進一步發展運用到人工智慧 (Artificial Intelligence,AI)

AI 涵蓋機器學習(Machine Learning)和深度學習(Deep Learning),每天都有成千上萬的相關專案在用著數百個 Python 函式庫,例如 TensorFlowKerasTorch,以及用於電腦視覺 OpenCV 等。

人工智慧

網站開發

雖然絕大部分網站開發是用 PHP、Java、JavaScript 等程式語言,可是現在 Python 也越來越多人用,因為強大的函式庫、廣泛的實際應用使 Python 日漸成為 Web 開發的必需。

與 Web 框架有關的函式庫較熱門的有 Django、Weppy、Bottle、Flask 等,其中 Django、Weppy 為較重量級的 Web 框架,Bottle、Flask 則是輕量級。

ps. 如果想了解更多 Python Web 框架,可以參考這篇文章:13個Python web框架比較

ps. 我自己也常用 Plotly 來做視覺化互動報表,並建成網站讓其他使用者可以很清楚、很方便看到資料分析後的結果,而 Plotly 的底層就是 Django 架構。(點我到 Plotly Graph Library)


自動化測試

任何產品在發表前都需要經過一道道「測試」,測試的程序通常要花費大量時間,如果用人工測試極度浪費人力成本,所以自動化測試尤其必要。

Python 有許多協助自動化測試的函式庫,例如用來幫助測試網頁前端的 Selenium、以關鍵字驅動為主的自動化測試工具 Robot Framework 等。

ps. Selenium 是動態網頁爬蟲,除了可以用來做自動化測試,也可以抓網頁內容,常搭配 BeautifulSoup 解析 HTML 網頁原始碼。

延伸文章:Selenium 是什麼?用 Python Selenium 自動爬網頁抓報表,初學者必看的簡單教學

Selenium 是什麼

※ 除了前面舉例的幾個函式庫,在這裡補充幾個其他常用的函式庫,將它們統整成表格如下:

函式庫名稱適用於
Pandas數據操作與處理
Matplotib繪製圖表
OpenCV電腦視覺
Plotly視覺化互動圖表
Django、Weppy、Bottle、Flask服務器端 Web 開發
Selenium網頁爬蟲、自動化測試
BeautifulSoup解析 HTML 和 XML
SciPy工程應用、科學和數學
NumPy科學計算
TensorFlowKerasTorch深度學習
scikit-learn機器學習

Python 的優點

容易理解

Python 是一種解釋型語言,語法簡化而不複雜,強調自然語言,所以讀寫 Python 就像在用英文跟電腦溝通,十分貼近一般人的使用習慣,非常直覺又很容易撰寫。

舉例,假如想要讓電腦顯示”Hello World!”,Python 程式碼只要寫一行:

Python:

print("Hello World!")

但想得到同樣的結果,用 CJava 就要寫好幾行,需要先做宣告才能 print。(如下 2 段程式碼)

C:

#include <stdio.h>
int main() {
printf("Hello World!");
}

Java:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

簡短的程式碼就有強大的功能

Python 有上百個函式庫供其他開發者可以輕鬆使用,短短的程式碼就能實現所需功能,因此大幅減少開發初期需耗費的時間與精力。

而這主要是因為背後強大且發展成熟的社群,不但支援與開發大量的函式庫與框架,而且幾乎完全免費,還提供大量文件和教學影片,讓不同級別的學習者與開發者都能輕易增強所需知識。

任何一個程式語言只要缺少開發人員支持,就很難被廣泛使用,甚至面臨絕跡,但 Python 社群非常活躍,沒有這個問題,如果有任何疑問,都可以獲得社群裡各式各樣不同開發人員的即時支持。

ps. 台灣也有 Python 社群(FB 社團) – Python Taiwan,可以加入跟大家一起討論問題、一起學習!


容易維護

Python 的架構非常明確,再加上同樣的一個功能,Python 可以比其他程式語言用更少的程式碼達成,所以相對容易維護許多。

程式碼少,當然出錯的機率就更低!


應用範圍廣

豐富的函式庫讓 Python 的應用範圍非常廣泛,不僅可用來開發網站、應用程式與系統等,許多雲端服務供應商也以類似函式庫的方式提供跨平台支援工具,真的十分方便。

還有許多特定用途的函式庫,比如應用於機器學習的 scikit-learn、專門處理自然語言的 NLTK (natural language toolkit)等。

應用程式開發

Python 的缺點

執行速度慢

Python 好讀好寫,是解釋型程式語言而非編譯型,很多其他語言(比如 C 或 Java)在編譯時會先做好的處理,Python 在執行的時候才開始做,所以執行速度相對地就比較慢。

不過,同樣地,程式碼也比其他程式語言少好幾倍。

ps. 如果想對這個部分有更深入的了解,可以參考這篇文章:為什麼 Python 這麼慢?比其他程式語言慢十倍的病根就在「全局解釋器鎖」

ps. 如果想改善 Python 程式碼的執行速度,可以參考這篇文章:用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!


強制縮排

如果你有學過其他程式語言,會發現大多數常見的程式語言是用大括號來區分函式、類別或功能,但 Python 是用 4 個空白鍵縮排來區分,一定要特別注意,若沒有按照這個規則會出現錯誤。

ps. 有許多編譯器(compiler)可以直接按 Tab 鍵自動縮排。


適合誰學習

原則上所有人都適合!

對新手來說,Python 的入門門檻比起其他常見的程式語言低很多很多,語法簡潔、架構明確清楚,相對容易學習與上手,也非常容易使用。

程式新手

但若想要程式基礎扎實穩健,建議從 C 開始學,不建議只學 Python,因為 Python 太方便會讓人習慣都用函式庫或套件,很容易忽略、沒有完整理解整個程式運作邏輯,將來遇到需要客製化時容易不知所措。

延伸閱讀 1:學程式應具備的心態是什麼?
延伸閱讀 2:當我們在學程式時,要學的到底是什麼?


怎麼開始學習

由於 Python 日趨熱門與普及,學習資源相當多元,不管是書籍,還是實體課程、線上課程等,只要 Google 下好關鍵字,就能搜尋到許多有幫助的資訊。

以下推薦適合剛入門、還沒有基礎的初學者:

推薦書籍

推薦線上課程

免費線上開放課程或資源:

付費線上課程:

ps. 比起付費課程,免費課程如果有任何問題,需要自己想辦法找答案,實作練習也沒有老師或助教可以請教與實際指導。

Github

Tutorial

無論是書、課程、Github 或 tutorial,選一個自己能看得下去的,然後認真地完成,並仔細地跟著裡面的實作練習,都可以好好上手、大大增加功力。

找到適合自己的學習方式是學得最輕鬆、進步也最快!

如果不知道該怎麼選擇教材,不妨想想自己『為什麼要學 Python』?

只是單純想學新的程式語言、想利用網路爬蟲快速抓取資料、想做數據分析、想投入機器學習、想開發網頁應用程式、理財投資 …,從這個角度切入,也會比較有頭緒知道自己所需要的。

要注意的是,Python 2 和 Python 3 有許多語法完全不同和不相容問題,現今大部分開發採用 Python 3 以後的版本,新手在學習前一定要好好確認所選教材。


延伸文章:想學寫程式該如何入門?初學者怎麼選擇程式語言?完全沒有技術背景也可以學嗎?

初學程式設計

有什麼樣的工作機會

前面提到,Python 的應用範圍非常廣泛,所以職缺當然也不少:

  • 與數據分析和人工智慧相關的就有 Data Analyst (數據分析師)、Data Engineer (數據工程師)、Data Scientist (資料科學家)
  • 與網站和應用程式開發有關的有前 / 後端工程師、遊戲開發工程師
  • 以及自動化測試工程師

如果你本來就是做程式開發相關的工程師,熟悉 Python 會是你其中一個加分條件,畢竟現在 Big Data 和 AI 很夯,再加上許多平台(如 Google、Youtube、Facebook、Instagram …)利用 Python 開發。

如果你想學寫程式來找工作,志向是當程式開發相關的工程師,我建議還是要學習 C、C++ 或 Java,因為 Python 真的太方便,太習慣用函式庫或套件反而容易缺乏訓練邏輯思維

另外,還要考慮一個蠻現實的問題,目前在台灣,除非是新創公司,否則一般正規大公司,絕大多數還是以 C、C++、Java 為主,所以單靠精通 Python 要找到不錯且維持高薪的工作其實不容易


結論

本文整理並介紹了以下 7 個重點:(ps. 如果有漏掉都可以直接點擊標題連結回去看)

  1. Python 是什麼
  2. Python 的實務應用
  3. Python 的優點
  4. Python 的缺點
  5. 適合誰學習
  6. 怎麼開始學習
  7. 有什麼樣的工作機會

Python 多功能、應用廣泛且方便,還能跨平台在任何類型環境中使用,如電腦應用程式、網頁開發、移動應用程式、硬體程式等,無論使用什麼平台,幾乎沒有效能損失的問題。

Python 易學好上手,適合所有人學習並運用。不過,若想成為專業的程式開發工程師,除了學會善用 Python 的函式庫,真正應該學的是解決問題的思維

雲端運算、機器學習與大數據分析是目前科技業最熱門的,它們幫助許多企業改變和優化工作流程,而機器人相關技術蓬勃發展,學習 Python 已成為未來趨勢之一。


如果覺得這篇文章有幫助,請幫我拍手 5 下鼓勵我、支持我,讓我繼續有創作的動力!

如果有任何問題或想分享的資訊,歡迎在下方留言!

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *