Python 是什麼?Python 可以做什麼?新手必看 Python 入門懶人包
人工智慧(AI)、大數據的發展越來越盛行,使得最常用來開發相關技術的 Python 程式語言,在近幾年高速成長且普及。
而 Python 好入門、易上手的特性,讓新手不管有沒有資工、電腦科學、程式背景都能輕易駕馭!
Python 是什麼?為什麼這麼熱門?你也對 Python 有興趣嗎?
如果你是個初學者,一定要好好看完這篇給 Python 入門初心者的文章!
Python 是什麼?
Python 是一種直譯式、物件導向、功能強大的高階程式語言,其設計強調程式碼的可讀性以及簡潔的語法,使用空格縮排來劃分程式碼區塊,不像其他常見的程式語言大多使用大括號或關鍵詞。
因此,Python 程式的結構清楚明瞭,比起其他常見的程式語言(例如 C 或 Java 等),Python 讓開發者能用更少的程式碼達到同樣的結果。
Python 的實務應用有哪些?
Python 最方便也最厲害的,就是擁有相當多函式庫(Library),任何能想到的功能或方法都已經有人整合起來,只要學會怎麼使用,並善加利用,就能節省大量開發時間。
尤其,對人力少又需爭取時間發展產品的新創團隊來說,這真的很棒、很有幫助!
Python 的實務應用主要有:
1. 數據處理與分析
資料處理、統計與分析不管在商業領域或科學研究上一直都極為重要。
以往大多用 Excel 工具來完成這項任務,但隨著硬體設備提升、互聯網發達,取得並儲存海量資料已經不像以前那麼困難又高成本。
大數據(Big Data)分析能大幅降低統計誤差,增加準確率,慢慢發展為新趨勢,不過 Excel 能處理的資料量有限,促使 R 和 Python 漸漸興起。
Python 有許多專門處理數據分析的函式庫可以運用,非常方便。
再加上與 R 相比,除了統計用途,還多了能建構應用程式、系統或網站的功用,所以更通用許多!
2. 人工智慧 (Artificial Intelligence,AI)
Python 可以很方便快速地處理並分析數據的特性,更進一步發展運用到人工智慧。
AI 涵蓋機器學習(Machine Learning)和深度學習(Deep Learning),每天都有成千上萬的相關專案在用著數百個 Python 函式庫,例如 TensorFlow、Keras、Torch,以及用於電腦視覺 OpenCV 等。
3. 網站開發
雖然絕大部分網站開發是用 PHP、Java、JavaScript 等程式語言,但 Python 也越來越多人使用,因為強大的函式庫、廣泛的實際應用,Python 逐漸成為 Web 開發的必需之一。
而 Python 函式庫中,與 Web 框架有關,較熱門的有 Django、Weppy、Bottle、Flask 等,Django、Weppy 是較重量級的 Web 框架,Bottle、Flask 則是輕量級。
我自己還常用 Plotly 來做視覺化互動報表並建成網站,讓其他使用者可以很清楚、很方便看到資料分析後的結果,而 Plotly 的底層就是 Django 架構。
ps. 如果想了解更多 Python Web 框架,可以參考這篇文章:13個Python web框架比較
4. 自動化測試
任何產品在發表前都需要經過一道道「測試」,測試的程序通常要花費大量時間,如果用人工測試極度浪費人力成本,所以自動化測試尤其必要。
Python 有許多協助自動化測試的函式庫,例如用來幫助測試網頁前端的 Selenium、以關鍵字驅動為主的自動化測試工具 Robot Framework 等。
ps. Selenium 是動態網頁爬蟲,除了可以用來做自動化測試,也可以抓網頁內容,常搭配 BeautifulSoup 解析 HTML 網頁原始碼。
Python 有什麼優點?
1. 容易理解
Python 是一種解釋型語言,語法簡化而不複雜,強調自然語言,所以讀寫 Python 就像在用英文跟電腦溝通,十分貼近一般人的使用習慣,非常直覺又很容易撰寫。
舉例,假如想要讓電腦顯示"Hello World!",Python 程式碼只要寫一行:
Python
print("Hello World!")
但想得到同樣的結果,用 C 或 Java 就要寫好幾行,需要先做宣告才能 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!");
}
}
2. 簡短的程式碼就有強大的功能
Python 有上百個函式庫供其他開發者可以輕鬆使用,短短的程式碼就能實現所需功能,因此大幅減少開發初期需耗費的時間與精力。
這主要是因為背後強大且發展成熟的社群,不但支援與開發大量的函式庫與框架,而且幾乎完全免費,還提供大量文件和教學影片,讓不同級別的學習者與開發者都能輕易增強所需知識。
任何一個程式語言只要缺少開發人員支持,就很難被廣泛使用,甚至面臨絕跡,但 Python 社群非常活躍,沒有這個問題!
如果有任何疑問卡關,都能獲得社群裡各式各樣不同開發人員的即時支持。
ps. 台灣的 Python 社群(FB 社團) – Python Taiwan,可以加入跟大家一起討論問題、一起學習!
3. 容易維護
Python 的架構非常明確,同樣的一個功能,Python 可以比其他程式語言用更少的程式碼達成,所以相對容易維護許多。
程式碼少,當然出錯的機率就更低!
4. 應用範圍廣
豐富的函式庫讓 Python 的應用範圍非常廣泛,不僅可用來開發網站、應用程式與系統等,許多雲端服務供應商也以類似函式庫的方式提供跨平台支援工具,真的十分方便。
還有許多特定用途的函式庫,比如應用於機器學習的 scikit-learn、專門處理自然語言的 NLTK (natural language toolkit)等。
Python 有什麼缺點?
1. 執行速度慢
Python 好讀好寫,是解釋型程式語言,而非編譯型。
很多程式語言(比如 C 或 Java)在編譯時會先做好的處理,而 Python 在執行的時候才開始做,所以執行速度相對較慢。
不過,同樣地,程式碼也比其他程式語言少好幾倍。
如果想對這個部分有更深入的了解,可以參考這篇文章:為什麼 Python 這麼慢?比其他程式語言慢十倍的病根就在「全局解釋器鎖」
如果想改善 Python 程式碼的執行速度,可以參考這篇文章:用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!
2. 強制縮排
如果你有學過其他程式語言,會發現大多數常見的程式語言是用大括號來區分函式、類別或功能。
但 Python 是用 4 個空白鍵縮排來區分,一定要特別注意,若沒有按照這個規則會出現錯誤!
ps. 很多編譯器(compiler)可以直接按 Tab 鍵自動縮排。
誰適合學習 Python?
原則上,所有人都適合!
對新手來說,Python 的入門門檻比起其他常見的程式語言低很多很多,語法簡潔、架構明確清楚,相對容易學習、上手,也非常容易使用。
不過,若想要程式基礎扎實穩健,不建議只學 Python,可考慮扎根後再多學 C 語言。
因為 Python 太方便,會讓人習慣都用函式庫或套件,很容易忽略也沒有完整理解整個程式運作邏輯,將來遇到需要客製化時,容易不知所措。
延伸閱讀 1:學程式應具備的心態是什麼?
延伸閱讀 2:當我們在學程式時,要學的到底是什麼?
怎麼學 Python?有什麼學習資源?
由於 Python 非常熱門與普及,學習資源相當多元,不管是書籍,還是實體課程、線上課程等,只要 Google 下好關鍵字,就能搜尋到許多有幫助的資訊。
以下推薦適合剛入門、還沒有基礎的初學者:
推薦書籍
推薦線上課程
免費線上開放課程或資源:
- 莫煩_Python3 基礎學 零基礎必修Python入門實作
- 彭彭的課程 – Python入門教學課程
- Meta:Programming in Python
- FB、IG 母公司 Meta 所推的線上課程,相當推薦初學者去上,因為完成後能拿到 Meta 頒的證書,可以列在履歷中,既能學習又能為履歷加分,一舉兩得,CP 值高!
付費線上課程:
比起付費課程,免費課程如果有任何問題,需要自己想辦法找答案,實作練習大多也沒有老師或助教可以請教與實際指導,所以在選擇的時候需考量這些因素!
不過,也可先從免費的開始學習,體驗寫程式的感覺,慢慢抓到訣竅後,再考慮付費深造,鞏固基礎。
GitHub
Tutorial
找到適合自己的學習方式是學得最輕鬆、進步也最快!
如果不知道該怎麼選擇教材,不妨想想自己「為什麼要學 Python?」
只是單純想學新的程式語言、想利用網路爬蟲快速抓取資料、想做數據分析、想投入機器學習、想開發網頁應用程式、理財投資 …,從這個角度切入,也會比較有頭緒知道自己需要什麼。
另外,要注意的是,Python 2 和 Python 3 有許多語法完全不同和不相容問題,現今大部分開發採用 Python 3 以後的版本,新手在學習前一定要好好確認所選教材!
希望大家都可以找到最舒服、最適合自己的學習方式,如果有任何學習上的問題,歡迎在下方留言,跟我一起交流與討論喔!
或者,email 寫信與我切磋&分享知識。
Email:jes.igoamazing@gmail.com
如果喜歡我的內容,也歡迎追蹤我的 IG,可以隨時掌握相關新資訊。
IG:https://www.instagram.com/jeslyn_cool/
留言
張貼留言