課程總覽
📚 課程概覽
學習廣受歡迎的程式語言 Python,涵蓋從網頁與軟體開發到資料科學及品質保證等各領域的核心概念。所獲技能包括撰寫 Python 3 程式碼以及簡化程式邏輯。
核心目標摘要:掌握 Python 基礎知識、流程控制、資料結構(清單、字串、字典)、函數、模組與檔案處理,最終導入物件導向程式設計的概念。
🎯 學習目標
- 撰寫並執行基本的 Python 3 腳本,應用基礎語法與內建資料類型(int、float、str)。
- 使用流程控制結構(if/else、for/while 迴圈)實現複雜的程式邏輯,以管理執行路徑。
- 設計並運用函數與模組來組織程式,提升可重用性與可維護性。
- 有效利用 Python 的核心資料結構,包括清單、字串與字典來管理資料。
- 透過檔案輸入/輸出操作(文字檔、CSV、JSON),與外部資料來源互動。
🔹 第一課:你好世界與基本語法
概述: 本課作為基礎課程,介紹 Python 程式語言的核心要素,從傳統的「你好世界」程式開始,使用 print() 函數展開。我們將建立關鍵語法規則,涵蓋縮排的重要性、大小寫敏感性,以及如何有效使用註解進行程式文件記錄。重點將放在變數上,包含宣告、賦值,以及整數、浮點數與字串等基本資料類型,這些都是儲存價格與商品名稱所必需的。最後,我們會立即應用這些概念,為一家家具店打造簡單的銷售系統框架。該應用將涉及定義特定商品變數(例如 'sofa_price'、'quantity'),並執行基本算術運算以計算總金額,從而強化對 Python 運作流程的理解。
學習成果:
- 使用 Python
print()函數執行標準的「你好世界」程式。 - 描述並應用 Python 的基本語法規則,包括正確的縮排與有效使用註解。
- 使用適當的基本資料類型(int、float、str)定義、宣告並賦予變數值。
- 利用基本算術運算子在程式中執行簡單計算。
- 建構銷售系統的初始架構,定義商品價格並計算交易總額。
🔹 第二課:流程控制與邏輯
概述: 本課介紹流程控制的基本概念,即決定程式碼執行順序的機制。我們將從探討布林邏輯開始,理解 bool 資料類型(True/False)與關係運算子(如 ==、>、<)如何用於建立條件表達式。核心結構——if 陳述式將被深入探討,展示如何僅在條件成立時才執行程式碼區塊。接著,我們將擴展至使用 else 與 elif 陳述式處理互斥路徑,使程式碼能建立複雜的決策樹。最後,學生將掌握邏輯運算子(and、or、not),以高效地結合多個條件檢查。實際範例將聚焦於驗證使用者輸入限制,並根據特定條件引導程式執行流程。
學習成果:
- 定義布林變數,並使用關係運算子(如 ==、>、<)評估條件表達式。
- 使用
if陳述式建構基本的條件邏輯結構。 - 使用
else與elif陳述式實作多路徑決策邏輯。 - 解釋縮排在定義 Python 流程控制區塊中的關鍵作用。
- 應用邏輯運算子(
and、or、not)建立複合條件測試。
🔹 第三課:使用清單
概述: 本課介紹 Python 中的清單,這是用於儲存有序且可變集合的基本序列資料類型。我們將從使用方括號 [] 定義清單開始,示範其可儲存異質資料類型的能力。清單的核心機制——索引與切片——將被詳細說明,展示學生如何使用正索引(0起始)與負索引存取特定元素或子區段。一個重要的理論觀點是可變性,解釋清單可在建立後直接修改。實務範例將聚焦於關鍵的清單管理方法,包括新增元素(append()、insert())、移除元素(remove()、pop()、del 關鍵字),以及取得長度(len())。學生將學會有效儲存與操控動態資料群組,這項技能對任何 Python 應用都至關重要。
學習成果:
- 使用適當語法定義並初始化清單,理解其作為有序、可變序列的角色。
- 使用正索引、負索引與切片,存取、修改並提取清單中的元素或子區段。
- 應用基本清單方法,如
append()、insert()、pop()與remove(),動態管理清單內容。 - 解釋可變性的概念,並區分清單內容管理與不可變資料類型的不同方式。
🔹 第四課:迭代與迴圈
概述: 本課介紹迭代的概念,這是程式設計中一個基本工具,允許開發者重複執行程式碼區塊,進而簡化並大幅提升程式的效率。我們將剖析 Python 中兩種主要的迴圈結構:for 迴圈,適用於遍歷已知序列(如清單中的元素或 range() 函數產生的數字),以及 while 迴圈,只要指定的布林條件為真就會持續執行。我們將示範如何建構穩健的迴圈,確保 while 迴圈有明確的結束條件,防止無限執行。此外,我們還會介紹特殊的迴圈控制機制,包括使用 break 語句立即退出迴圈,以及使用 continue 語句跳過當前迭代剩餘部分並繼續下一輪,從而為迭代解決方案提供複雜的流程控制。
學習成果:
- 区分
for與while迴圈的結構功能,並為特定程式任務選擇合適的迴圈類型。 - 建構並使用
for迴圈,有效遍歷序列(如清單),並使用range()函數進行數值迭代。 - 實作安全且受控的
while迴圈,確保明確的終止條件以防止無限執行。 - 應用
break與continue語句,根據特定條件需求修改迴圈執行的標準流程。
🔹 第五課:使用函數重用程式碼
概述: 本課介紹透過 Python 函數實現程式碼重用的重要概念。學生首先會學習使用 def 關鍵字定義函數的基本語法,理解正確縮排與可選文件字串(docstrings)的重要性。我們將說明如何設計函數以透過參數(引數)接收輸入,以及如何使用 return 語句傳回輸出。函數的核心優勢——簡化程式碼、提升可讀性、避免重複(遵循 DRY 原則)——將被強調。實務應用將聚焦於解決現實世界的數學問題。學生將定義並呼叫函數,計算著名的物理公式,如動能或重力,展示如何將特定邏輯封裝成函數,以便在任何 Python 程式中輕鬆且重複使用。
學習成果:
- 定義函數在 Python 程式設計中的目的,並闡述程式碼重用與模組化的優點。
- 使用
def關鍵字建構並定義簡單的 Python 函數,包含適當的參數與標準命名慣例。 - 成功呼叫已定義的函數,傳遞必要引數以執行封裝的邏輯。
- 使用
return語句將結果輸出,供指派或進一步運算。 - 應用函數式程式設計概念,實作並計算著名的物理公式,如計算距離或速度。
🔹 第六課:字串操作
概述: 本課深入探討強大的 Python 字串物件,它是處理文字資料的基礎。我們將從探索字串的建立開始,包括單引號與雙引號的使用,並討論其不可變特性。核心重點將放在使用索引與切片存取與重新排列文字,以高效地提取特定字元或子字串。接著,我們將介紹文字處理的必要方法,包括使用 .strip() 清理文字、使用 .lower() 與 .upper() 改變大小寫,以及使用 .startswith() 等方法檢查內容。最後,學生將掌握將大塊文字拆解為單詞或行列表的技巧,使用強大的 .split() 方法,並利用多功能的 .join() 方法高效重組,從而實現自動化文字處理應用。
學習成果:
- 定義 Python 字串物件,並應用索引與切片存取特定字元或子字串。
- 使用常見的字串方法如 .upper()、.lower() 和 .strip() 來清理與格式化文字資料。
- 使用 f-字串與 .format() 方法實作字串內插技術,創造動態文字。
- 示範使用 .split() 將文字拆解為列表,以及使用 .join() 方法將序列重組為字串。
🔹 第七課:Python 模組
概述: 本課介紹 Python 模組這一基本概念,它允許透過可重用的檔案組織程式碼並大幅拓展功能。我們將定義什麼是模組(標準的 .py 檔案),並解釋使用模組如何促進程式碼重用與清晰度。核心重點將在於掌握 import 語句,涵蓋標準語法(import module_name)、別名(import module as alias)與精確匯入(from module import item),以有效管理程式的命名空間。我們將探討來自 Python 標準程式庫的基礎內建模組之實際範例,如 math 模組(用於 sqrt 等函數或 pi 等常數)與 random 模組。最後,我們將示範如何建立並實作一個簡單的自訂模組,以跨不同 Python 檔案重複使用自己的函數。
學習成果:
- 定義 Python 模組是什麼,並解釋其在擴展功能與組織大型程式中的角色。
- 正確使用標準
import語句及其變體(別名與精確匯入)。 - 展示能夠呼叫並使用常見內建模組(如
math與random)中的函數。 - 解釋不同匯入方式如何影響目前程式的命名空間。
- 建立一個包含可重用函數的簡單自訂 Python 模組。
🔹 第八課:使用字典
概述: 本課深入探討 Python 字典,這是一種基本且強大的資料結構,用於將唯一鍵映射到特定值。我們將從使用大括號與冒號分隔的鍵值對定義字典結構開始,強調字典是可變的,並針對鍵進行快速查詢優化。課程將涵蓋基本操作,包括如何使用方括號語法高效存取值,以及如何動態新增鍵值對或修改現有值。我們將探討鍵的約束條件,指出鍵必須是不可變類型(如字串或元組)。最後,學生將學習關鍵方法,如 .keys()、.values() 與 .items() 來檢視字典內容,並學習如何使用迴圈遍歷這些元素,從而牢固掌握儲存與檢索複雜、非結構化資料的能力。
學習成果:
- 定義 Python 字典結構,並闡述其作為鍵值對映射容器的主要功能。
- 使用字面語法建構並初始化字典,並正確根據對應鍵存取與分配值。
- 使用方括號語法與
del關鍵字執行字典元素的 CRUD 操作(建立、讀取、更新、刪除)。 - 使用內建字典方法,包括 .keys()、.values() 與 .items(),有效提取不同的資料視角。
- 在實務編碼範例中應用字典,例如建模使用者個人檔案或管理設定項目。
🔹 第九課:檔案輸入與輸出 (I/O)
概述: 本課介紹 Python 中的檔案輸入與輸出(I/O),讓程式能自動化並持久化資料。我們將從掌握核心檔案處理操作開始:使用內建的 open() 函數開啟檔案,指定各種存取模式(讀取 'r'、寫入 'w'、追加 'a'),並理解 with open() as f: 上下文管理器在確保檔案自動關閉方面的關鍵作用,防止資源洩漏。接下來,我們將探討使用標準文字檔(.txt)進行未結構化資料的讀取與寫入。第二部分專注於結構化資料:利用 Python 專用的 csv 模組高效讀取與寫入逗號分隔值,並使用 json 模組(特別是 json.load() 與 json.dump())處理複雜的巢狀 JSON 資料結構,這對於與 API 互動及現代設定檔處理至關重要。掌握這些概念是建構能與外部資料來源互動的實用 Python 應用的關鍵。
學習成果:
- 解釋 Python 中檔案處理的基本流程,包括使用
open()函數與指定讀取/寫入/追加模式。 - 使用
with語句(上下文管理器)安全可靠地管理檔案資源,確保檔案始終被關閉。 - 寫出 Python 程式碼,從標準文字檔(
.txt)讀取資料,並寫入順序資料。 - 使用內建的
csv模組,程式化讀取、解析與生成 CSV 格式資料。 - 使用
json模組將 Python 物件序列化為 JSON 格式,並將 JSON 資料反序列化為可用的 Python 結構。
🔹 第十課:類別與物件導向程式設計簡介
概述: 本課提供對 Python 中物件導向程式設計(OOP)的基礎介紹。我們將從釐清 Python 內建資料類型(如 int、str、list)與強大且可由使用者定義的結構——類別之間的差異開始。學習者將理解類別是藍圖,而物件是從該藍圖衍生出的具體實例。我們將詳述使用 class 關鍵字定義類別的必要語法,重點放在如何使用特殊方法 __init__(建構函數)初始化物件狀態,以及如何定義操作方法。最後,我們將探討這些概念如何實現封裝——將資料與操作該資料的方法捆綁在一起——並簡要討論介面在定義物件行為契約中的角色,為複雜軟體架構奠定基礎。
學習成果:
- 辨識內建 Python 資料類型與自訂、使用者定義的類別類型之間的差異。
- 定義並闡述類別與物件(實例)之間的根本區別。
- 建構一個基本的 Python 類別,包含實例化與實例屬性的定義。
- 使用
__init__方法(建構函數)在物件建立時正確初始化其狀態。 - 解釋封裝如何組織程式碼,並促進程式碼的重用性與可維護性。