聯繫我們
加入好友
PY101

為你自己學 Python

給新手的 Python 線上程式課程

這是給想要學習 Python 的新手所寫的線上課程。 文字版教材:https://pythonbook.cc/ 本課程以 Python 3 做為主要教學語言,第一單位(PY101)內容涵蓋 Python 環境安裝、程式語言基礎語法,包括各種常用資料型態介紹、邏輯及流程控制、函數、物件導向程式設計等,並透過網站爬蟲程式抓取並分析資料。

現在報名只要 NT$3,800
  • 終身存取權
  • 可行動裝置使用
  • 課程時長:25.4 小時
  • 結業證書

講師介紹

使用者大頭貼

高見龍 Eddie

五倍學院負責人,在國內外各大型技術研討會擔任講者,參與過日本 RubyKaigi、日本 Ruby World Conference、臺灣微軟 Azure Developer Day 、RubyConf Taiwan、JSDC、WebConf Taiwan 等。有二十年程式開發經驗和十多年的教學經驗,在臺灣推廣 Ruby 及 Git 多年,在各大專院校與企業開課,深受學員喜愛。

非資訊本科系出身,但喜歡寫程式,而且希望可以寫一輩子程式的電腦阿宅。

著有「為你自己學 Git」與「為你自己學 Ruby on Rails」暢銷技術書。

課程特色

課程章節

第 1 章:寫在最前面

00 : 13 : 33

101 - 寫在最前面

Python 入門內容,教材已放上「為你自己學 Python」網站,採用 CC 授權免費取用。這本書的起源是因為我家小孩學校要教 Python,所以寫了一本讓新手也能看懂的書。Python 目前在 TIOBE 排行榜位居第一,可用於自動化程式、網頁爬蟲、網站開發及機器學習等領域。學習上我建議不要只是照著影片打字,而是先暫停影片自己嘗試撰寫,並透過「小黃鴨除錯法」講解給自己聽。最重要的是建立 SSOT(單一真相來源),以官方文件為準,使用 AI 工具時要小心求證。

第 2 章:環境安裝

01 : 50 : 17

201 - 安裝 Python

09 : 07

這個章節介紹如何安裝 Python 程式語言。首先到 Python 官網下載安裝檔,目前最新版本是 3.12.4。Mac 系統通常已內建 Python,但版本較舊,建議另外安裝新版。Python 2 和 3 不相容,現在普遍使用 Python 3。安裝過程很簡單,下載後一路按下一步即可完成。Mac 用戶可透過終端機輸入 python3 來執行,Windows 用戶則可用 PowerShell 輸入 python。若要離開 Python 環境,可輸入 exit() 或按 Ctrl+D。整體來說,Python 的安裝比其他程式語言簡單許多。

202 - REPL

介紹 Python 的 REPL 環境,REPL 是 Read、Evaluate、Print、Loop 四個字的縮寫。在這個環境中,系統會讀取你輸入的內容,評估執行後印出結果,然後等待下一個指令。例如在終端機輸入 python3 進入 REPL 環境後,輸入 1 就會印出 1,輸入 1 加 2 就會計算並印出 3。REPL 環境的提示符號是三個箭頭,輸入指令時不需要跟著打這三個箭頭。這個環境很適合用來執行簡單的程式或做測試,但不適合撰寫較長的程式碼。

203 - 安裝 pyenv

17 : 08

pyenv 這個 Python 版本管理工具。Python 有很多版本和分支,像是 Jython、IronPython、PyPy 等,光是 3 系列就有 3.10、3.11、3.12 等多個版本。pyenv 本身不是 Python,而是一個工具箱,可以在同一台電腦安裝並管理多個 Python 版本。Mac 用戶需先安裝 Homebrew,再用 brew install pyenv 安裝;Windows 用戶則透過 PowerShell 安裝。安裝後可用 pyenv install 安裝指定版本,用 pyenv shell 或 pyenv global 切換版本。設定 global 後,每次開啟終端機都會使用指定版本,且可直接打 python 而不用打 python3。

204 - 安裝 VSCode

01 : 18

介紹 Python 開發工具的選擇。其實只要有文字編輯器就能開始寫 Python 程式,不需要很厲害的工具。市面上有 PyCharm 這類功能完整的開發工具,雖然有免費的社群版本,但它是商業公司開發的,啟動速度稍慢。在這個課程中,我會使用 VS Code 這個文字編輯器,它簡單好用,在 Mac 和 Windows 都有對應版本,下載安裝後就能開始寫程式了。

205 - 第一個程式

13 : 17

示範如何用 Python 印出第一行程式。首先介紹用 python -c 指令直接執行一行程式碼,以及進入 REPL 環境互動執行,但這些方式不實用。接著說明正式開發流程:用 VS Code 開啟資料夾,建立 .py 檔案撰寫程式碼。推薦安裝 Python 和 Black Formatter 這兩個擴充套件,前者提供語法提示,後者自動排版。VS Code 內建終端機很方便,不用額外切換視窗就能執行腳本。雖然也能用 Google Colab 或 Jupyter Notebook,但建議在本機開發,把技能學進腦袋,不要被特定工具綁架。

206 - 註解

03 : 16

介紹程式碼中的註解功能。註解是用井字號開頭的說明文字,目的是解釋程式碼的用途,例如說明 9.8 代表重力加速度。適當加註解能幫助同事或未來的自己理解程式碼的意圖。註解不會被程式執行,所以也常用來暫時停用某段程式碼,方便測試不同情況。在 VS Code 中,可用快捷鍵 Ctrl 或 Command 加斜線快速切換註解,還能一次選取多行批次處理,非常實用。學會這些小技巧能讓開發過程更順暢,也展現你對工具的熟練度。

207 - Python 附檔名

03 : 00

檔案副檔名其實只是用來標記的,告訴作業系統這是什麼類型的檔案。Python 程式不一定要存成 .py,改成 .js、.php 甚至 .jpg 都能正常執行,因為本質上它就是個文字檔,Python 直譯器只在乎檔案內容,不在乎副檔名叫什麼。副檔名的主要用途是讓作業系統知道雙擊時該用什麼程式開啟,像 .doc 會開 Word、.xls 會開 Excel。不過實務上還是建議用 .py,因為 VS Code 等編輯器會根據副檔名提供正確的語法高亮顯示,改成其他副檔名反而會造成困擾。

208 - Python 之禪

01 : 55

在 Python 的 REPL 環境中輸入 import this,會顯示一段由核心開發者 Tim Peters 所寫的文字,稱為「Python 之禪」(Zen of Python)。這段文字列出了撰寫 Python 程式碼的原則,包括:優美優於醜陋、可讀性很重要、簡單優於複雜等。這些原則是寫 Python 時應該放在心裡的指引,遵循這些方向就能寫出更優美、簡潔、明瞭的程式碼。雖然初學階段可能還感受不到這些原則的好處,但寫個半年、一年之後,就會慢慢體會為什麼大家這麼喜歡 Python 這個程式語言。

209 - 安裝套件

08 : 31

介紹 Python 套件的安裝方式。Python 本身功能有限,大多需要依賴第三方套件。現在透過 PyPI 網站可以找到各種套件,類似 JavaScript 的 NPM 或 Ruby 的 RubyGems。安裝套件只需執行 pip install 加上套件名稱即可,pip 會自動處理相依套件的下載與安裝,比早期手動下載解壓縮方便許多。用 pip list 可查看已安裝的套件。不過 pip 有個問題:uninstall 時只會移除指定套件,不會連帶移除相依套件,導致殘留檔案。這雖然造成空間浪費,但更大的問題與接下來要談的虛擬環境有關。

210 - 虛擬環境 venv

17 : 28

介紹 Python 虛擬環境 venv 的用途與操作方式。pip 安裝套件時,同一環境只能存在一個版本,安裝新版會自動移除舊版,造成不同專案間的版本衝突。venv 是 Python 3.3 後內建的模組,可為每個專案建立獨立環境,透過 python -m venv 環境名稱 建立,再用 source 啟動。啟動後安裝的套件只存在該環境中,不影響其他專案。Mac 與 Windows 的啟動指令略有不同。另外說明 pyenv 管理 Python 版本,venv 管理套件版本,兩者層級不同。最後介紹 pip freeze 可輸出套件清單至 requirements.txt,方便部署時用 pip install -r 批次安裝。

211 - 套件管理工具 Poetry part 1

15 : 21

介紹 Poetry 這個 Python 套件管理工具。venv 的缺點是移除套件時,相依的延伸套件不會一併移除,雖然只是浪費空間,但用起來不太舒服。Poetry 的角色類似前端的 NPM,功能更完整。安裝時建議用 pipx 來安裝,讓 Poetry 成為全域工具,不會跟虛擬環境混在一起。使用 poetry new 或 poetry init 可以建立專案,會產生 pyproject.toml 設定檔。透過 poetry add 安裝套件、poetry remove 移除套件時,相依套件會一併處理。Poetry 還會產生 lock 檔確保版本一致,也支援用 --group 參數將開發用套件分組管理。

212 - 套件管理工具 Poetry part 2

18 : 00

介紹 Poetry 套件管理工具的虛擬環境設定。Poetry 預設會把虛擬環境放在系統目錄,不像 venv 放在專案資料夾內,想查看位置可用 poetry env info 指令。我習慣修改設定讓虛擬環境建在專案內,方便管理和刪除,只要執行 poetry config virtualenvs.in-project true 即可。另外說明語意化版本的概念:主版號代表大改版、次版號代表新功能、修訂版號代表小修正。pyproject.toml 中的版本符號也很重要,波浪符號只升級修訂版,插入符號會升級次版號,等於等於則鎖定版本。建議不要太保守,以免錯過安全性更新。

第 3 章:變數

00 : 48 : 55

301 - 變數與常數

16 : 36

介紹 Python 變數的基本概念與使用方式。變數就像標籤或名牌,用來標記電腦記憶體中的資料,方便後續存取。在 Python 中宣告變數非常簡單,不需要像其他程式語言那樣先宣告型別,直接寫 a = 1450 即可。示範如何使用 print() 印出變數值,並說明變數名稱與字串的差異。Python 支援多重指定,可一次宣告多個變數如 x, y, z = 1, 2, 3,若有不需要的值可用底線 _ 代替。變數的值可隨時更改,但存取不存在的變數會出現 not defined 錯誤。最後提到 Python 沒有常數設計,慣例上用全大寫命名表示不應修改的值。

302 - 變數命名規則

07 : 13

303 - 命名慣例

04 : 53

304 - 程式碼可讀性

03 : 07

305 - 《練習》變數交換

04 : 04

306 - 刪除變數

01 : 54

307 - 使用者輸入

03 : 34

308 - 宣告型別?

07 : 34

第 4 章:數字與文字

02 : 42 : 35

401 - 整數與浮點數

03 : 13

402 - 數字四則運算

07 : 19

403 - 四捨五入

09 : 29

404 - 其它數學運算

06 : 28

405 - a = a + 1

05 : 12

406 - 科學記號表示法

08 : 47

407 - 位元運算

04 : 55

408 - 不是數字的 NaN

07 : 24

409 - 無限大

08 : 45

410 - 字串與跳脫符號

08 : 52

411 - 多行文字

04 : 11

412 - 字串型別轉換

04 : 50

413 - 字串與數字

07 : 59

414 - 好用的 F 字串

13 : 14

415 - 字串的索引值

04 : 20

416 - 字串是不可變更的

02 : 30

417 - 為什麼索引值從 0 開始算?

04 : 54

418 - 字串切片

03 : 27

419 - 切片省略部份欄位

12 : 14

420 - 常用的字串方法

15 : 24

421 - Unicode 與 UTF-8

05 : 43

422 - 字串與位元組

13 : 25

第 5 章:布林值與流程控制

01 : 32 : 50

501 - 布林值

05 : 50

502 - 真的值、假的值

02 : 49

503 - 布林值是一種數字

03 : 27

504 - 邏輯運算 Not, And, Or

02 : 31

505 - 邏輯短路

03 : 56

506 - 位元運算

03 : 25

507 - if 流程控制

09 : 23

508 - 什麼也不做的 pass

01 : 40

509 - if 與 else

02 : 54

510 - 《練習》閏年判斷

07 : 55

511 - 剪刀、石頭、布!

11 : 14

512 - switch 語法?

01 : 45

513 - 三元運算子

03 : 53

514 - match

04 : 58

515 - pattern matching

11 : 04

516 - 虛無飄渺的 None

02 : 32

517 - == 與 is

03 : 54

518 - String Interning 機制

07 : 04

519 - 你是不是 None?

02 : 36

第 6 章:迴圈

01 : 07 : 03

601 - for 迴圈

06 : 52

602 - 範圍 range

04 : 14

603 - 迭代 iteration

02 : 00

604 - for 迴圈的變數範圍

03 : 34

605 - 列舉 enumerate

07 : 28

606 -《練習》九九乘法表

04 : 45

607 -《練習》聖誕樹

08 : 52

608 - 迴圈也有 else?

07 : 14

609 - while 迴圈

06 : 01

610 -《練習》猜數字

07 : 00

611 - 迴圈的流程控制

07 : 12

612 - for 迴圈還是 while 迴圈

01 : 51

第 7 章:串列

01 : 30 : 53

701 - 關於串列

04 : 43

702 - 串列常見操作

06 : 49

703 - 元素是否存在?

05 : 54

704 - 新增、移除元素

09 : 45

705 - 排序、反轉、合併

13 : 47

706 - 可迭代物件

06 : 15

707 - 同一個串列?

05 : 34

708 - 切片

02 : 22

709 - 串列推導式

07 : 06

710 - 小心!巢狀物件的坑

04 : 41

711 - 加上條件判斷

03 : 15

712 - 多層串列推導式

03 : 16

713 - 串列開箱!

08 : 32

714 - 開箱運算子

04 : 05

715 - 《冷知識》Python 的陣列

04 : 49

第 8 章:字典

01 : 02 : 26

801 - 建立字典

07 : 04

802 - 取用字典

06 : 12

803 - 字典沒有順序?

02 : 19

804 - 新增、更新字典

02 : 40

805 - 有這個 Key 嗎?

02 : 33

806 - Key 的限制?

02 : 56

807 - 為什麼叫字典?

02 : 57

808 - 字典常見操作

07 : 07

809 - 合併字典

04 : 28

810 - 複製字典

03 : 18

811 - 印出所有 Key 跟 Value

06 : 47

812 - 字典推導式

04 : 49

813 - 什麼是「雜湊」?

09 : 16

第 9 章:元組與集合

00 : 56 : 43

901 - 建立 Tuple

07 : 54

902 - Tuple 常見操作

05 : 36

903 - 複製 Tuple

04 : 12

904 - 空的 Tuple?

04 : 45

905 - Tuple 的效能

03 : 56

906 - Tuple 推導式?

04 : 42

907 - 集合

05 : 43

908 - 集合常見操作

06 : 58

909 - 交集、聯集、差集

04 : 21

910 - 嚴格子集

03 : 25

911 - 集合推導式

03 : 04

912 - 冷凍集合

02 : 07

第 10 章:函數(基礎篇)

02 : 22 : 04

1001 - 什麼是函數?

06 : 30

1002 - 定義函數

05 : 50

1003 - pass

03 : 29

1004 - 參數

07 : 15

1005 - 執行還是呼叫?

01 : 24

1006 - 關鍵字引數

07 : 37

1007 - 位置引數與關鍵字引數

08 : 05

1008 - 參數預設值

04 : 43

1009 - 參數預設值的坑!

08 : 00

1010 - 不定數量參數之位置引數

08 : 10

1011 - 不定數量參數之關鍵字引數

03 : 41

1012 - 引數開箱

04 : 40

1013 - Docstring

05 : 36

1014 - 回傳值

07 : 41

1015 - Early Return

06 : 39

1016 - 所有函數都有回傳值?

02 : 55

1017 - 函數是一等公民

07 : 12

1018 - 作用域 LEGB 之 LEG

09 : 49

1019 - 作用域 LEGB 之 B

06 : 50

1020 - a = a + 1

10 : 42

1021 - global 與 nonlocal

10 : 55

1022 - 函數 vs 方法

04 : 21

第 11 章:函數(進階篇)

01 : 53 : 11

1101 - 表達式 vs 陣述句

09 : 34

1102 - Lambda 表達式

06 : 09

1103 - Lambda 表達式的限制與使用

10 : 23

1104 - Closure 之自由變數

07 : 14

1105 - Closure 之變數帶著走

04 : 54

1106 - Closure 之運作原理

07 : 54

1107 - Closure 之應用

03 : 56

1108 - 函數裝飾器

08 : 34

1109 - 函數裝飾器的語法糖

02 : 01

1110 - 函數裝飾器之原本的參數?

05 : 56

1111 - 帶有參數的裝飾器

10 : 52

1112 - 遞迴

05 : 01

1113 - 遞迴之費氏數列

08 : 40

1114 - 遞迴的效能?

03 : 37

1115 - 產生器

11 : 29

1116 - 偏函數與柯里化

06 : 57

第 12 章:錯誤處理

00 : 24 : 35

1201 - 錯誤的種類

05 : 40

1202 - 錯誤 vs 例外

04 : 37

1203 - 製作自己的錯誤類別

02 : 51

1204 - 錯誤處理

06 : 52

1205 - 錯誤處理之 finally 與 else

04 : 35

第 13 章:模組與套件

01 : 20 : 29

1302 - 虛擬環境之模組搜尋路徑

02 : 15

1301 - 模組與套件

05 : 35

1303 - 建立、匯入模組

10 : 13

1304 - 只匯入部份功能

04 : 58

1305 - 重複匯入模組?

06 : 05

1306 - 匯入模組的位置

02 : 17

1307 - 匯入同名函數

05 : 33

1308 - 同名模組

05 : 34

1309 - 能有點隱私嗎?

03 : 14

1310 - 被匯入 vs 直接執行

05 : 52

1311 - 套件與模組的差異

08 : 45

1312 - __init__.py 的用途

05 : 26

1313 - 《冷知識》不同的套件

09 : 13

1314 - 《冷知識》壓縮檔也可以

05 : 29

第 14 章:物件導向程式設計(基礎篇)

02 : 45 : 18

1401 - 什麼是物件?

04 : 00

1402 - 建立物件

10 : 08

1403 - 初始化

11 : 47

1404 - 建構子?

04 : 37

1405 - 實體變數

03 : 40

1406 - 實體方法

06 : 54

1407 - 類別變數

06 : 03

1408 - 存取類別變數

13 : 48

1409 - Getter 與 Setter

08 : 56

1410 - 屬性裝飾器

10 : 35

1411 - 私有屬性?

05 : 11

1412 - 限定屬性存取之 Slots

10 : 57

1413 - 類別方法

10 : 04

1414 - 靜態方法

05 : 53

1415 - 繼承

12 : 11

1416 - 沒寫就沒有繼承嗎?

07 : 16

1417 - 方法覆寫與 super

11 : 19

1418 - 你是我的後代嗎?

09 : 39

1419 - 多重繼承

03 : 39

1420 - 多重繼承之鑽石問題

08 : 41

第 15 章:物件導向程式設計(進階篇)

02 : 06 : 04

1501 - 描述器

10 : 27

1502 - 資料描述器

09 : 56

1503 - 資料描述器可以幹嘛

06 : 30

1504 - 所以,值要存在哪裡?part 1

10 : 01

1505 - 所以,值要存在哪裡?part 2

05 : 19

1506 - 刪除屬性

04 : 08

1507 - 函數與方法

14 : 48

1508 - slots 其實也是描述器

06 : 05

1509 - Meta Class

09 : 39

1510 - 建立 Classs 的原始碼

05 : 29

1511 - 建構子?

08 : 25

1512 - 魔術方法

03 : 33

1513 - 魔術方法之物件看起來的樣子

11 : 56

1514 - 迭代器

11 : 46

1515 - 可迭代物件

08 : 02

第 16 章:檔案處理

00 : 28 : 23

1601 - 讀取檔案

09 : 19

1602 - 游標的位置

02 : 34

1603 - 用完記得關!

02 : 57

1604 - with 關鍵字

04 : 40

1605 - 寫入檔案

08 : 53

第 17 章:處理 CSV 檔案

00 : 50 : 27

1701 - 讀取 CSV 檔案

06 : 51

1702 - 設定方言(Dialect)

07 : 27

1703 - 寫入 CSV 檔案

05 : 07

1704 - 台積電股價 K 線圖 part 1

10 : 52

1705 - 台積電股價 K 線圖 part 2

09 : 44

1706 - 台積電股價 K 線圖 part 3

10 : 26

第 18 章:資料抓取與解析

01 : 03 : 10

1801 - 什麼是 API?

05 : 08

1802 - 抓取書局銷售排行資料 part 1

06 : 35

1803 - 抓取書局銷售排行資料 part 2

11 : 48

1804 - 從 API 抓取地震資料 part 1

04 : 48

1805 - 從 API 抓取地震資料 part 2

09 : 23

1806 - 從 API 抓取地震資料 part 3

09 : 10

1807 - 從氣象署網頁抓資料 part 1

07 : 52

1808 - 從氣象署網頁抓資料 part 2

08 : 26

第 19 章:偵錯工具

00 : 29 : 46

1901 - 使用 Pdb 偵錯器

07 : 34

1902 - 執行程式

09 : 03

1903 - 動態設定中斷點

05 : 37

1904 - 誰呼叫了這個函數?

02 : 58

1905 - Pdb 常用指令整理

04 : 34

PY101

為你自己學 Python

現在報名只要 NT$3,800
  • 終身存取權
  • 可行動裝置使用
  • 課程時長:25.4 小時
  • 結業證書

其他課程推薦