Python 程式設計入門
學習 Python,這是一門流行的程式語言,涵蓋從網頁與軟體開發到資料科學和品質保證的基礎概念。所學技能包括撰寫 Python 3 程式以及簡化程式碼。
課程總覽
📚 課程概覽
學習廣受歡迎的程式語言 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 關鍵字定義函數的基本語法,理解正確縮排與可選的文件字串(docstring)的重要性。我們將說明如何設計函數以接收輸入參數(引數),並使用 return 陳述式傳回輸出。函數的核心優勢——簡化程式碼、提升可讀性,並避免重複(遵循 DRY 原則)——將被強調。實務應用將著重於解決現實世界的數學問題。學生將定義並呼叫函數,計算著名的物理公式,如動能或重力作用力,展現函數如何封裝特定邏輯,以便在任何 Python 程式中輕鬆且重複使用。
學習成果:
- 定義函數在 Python 程式設計中的目的,並闡述程式碼重用與模組化的優點。
- 使用
def關鍵字建構並定義簡單的 Python 函數,包含適當的參數與標準命名慣例。 - 成功呼叫已定義的函數,傳遞必要引數以執行封裝的邏輯。
- 使用
return陳述式輸出函數結果,供指派或進一步運算。 - 應用函數式程式設計概念,實作並計算著名物理公式,如距離或速度的計算。
🔹 第六課:字串操作
概述: 本課深入探討強大的 Python 字串物件,它是處理文字資料的基礎。我們將從字串的建立方式開始,包括單引號與雙引號的使用,並討論其不可變性。核心焦點將放在使用索引與切片存取與重新排列文字,以高效提取特定字元或子字串。接著,我們將介紹文字處理的關鍵方法,包括使用 .strip() 清理文字,使用 .lower() 與 .upper() 改變大小寫,以及使用 .startswith() 等方法檢查內容。最後,學生將掌握使用強大的 .split() 方法將大段文字拆解成單詞或行的列表,並使用靈活的 .join() 方法重新組合,實現自動化文字處理應用。
學習成果:
- 定義 Python 字串物件,並應用索引與切片存取特定字元或子字串。
- 使用常見字串方法如 .upper()、.lower() 與 .strip() 進行文字資料的清理與格式化。
- 使用 f-strings 與 .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語句(上下文管理器)以安全可靠地管理檔案資源,確保檔案永遠被關閉。 - 寫出讀取與寫入標準文字檔(
.txt)序列資料的 Python 程式碼。 - 使用內建的
csv模組,程式化讀取、解析與產生 CSV 格式資料。 - 使用
json模組將 Python 物件序列化為 JSON 格式,並將 JSON 資料反序列化為可用的 Python 結構。
🔹 第十課:類別與物件導向程式設計簡介
概述: 本課提供對 Python 物件導向程式設計(OOP)的基礎介紹。我們將首先釐清 Python 內建資料型態(如 int、str、list)與強大、使用者定義的結構——類別之間的差異。學習者將理解類別是藍圖,而物件是由此藍圖衍生的具體實例。我們將涵蓋使用 class 關鍵字定義類別的必要語法,重點放在如何使用特殊方法 __init__(建構函數)初始化物件狀態,以及如何定義操作方法。最後,我們將探討這些概念如何實現封裝——將資料與操作該資料的方法打包在一起,並簡要討論介面在定義物件明確行為契約中的角色,為複雜軟體架構奠定基礎。
學習成果:
- 辨別內建 Python 資料型態與自訂、使用者定義的類別型態之間的差異。
- 定義並闡述類別與物件(實例)之間的根本差異。
- 建構基本的 Python 類別,包含實例化與實例屬性的定義。
- 使用
__init__方法(建構函數)在物件建立時正確初始化其狀態。 - 解釋封裝如何組織程式碼,並促進程式碼的重用性與可維護性。