📌 第 4 小時:函式與模組(Functions & Modules)
在程式設計中,函式(Function) 是可重複使用的程式碼片段,可提高程式的結構性與可讀性。Python 提供兩種函式:
- 內建函式(Built-in Functions):如
print()
,len()
,max()
,min()
- 自訂函式(User-defined Functions):使用
def
定義函式
此外,Python 允許將函式放入 模組(Module),這樣我們可以在不同的程式中重複使用相同的功能。
🔹 什麼是函式?為何使用函式?
函式(Function) 是 封裝一組指令,當我們需要執行這些指令時,只要「呼叫函式」即可,不用重複撰寫相同的程式碼。
🟢 沒有函式的寫法(重複程式碼,不易維護)
print("Hello, Alice!")
print("Hello, Bob!")
print("Hello, Charlie!")
🟢 使用函式的寫法(程式碼更簡潔)
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
greet("Bob")
greet("Charlie")
📌 優點
- 減少重複程式碼(DRY 原則)
- 提高可讀性與可維護性
- 方便重複使用
🔹 定義與呼叫函式
Python 使用 def
關鍵字來定義函式:
def 函式名稱(參數1, 參數2, ...):
# 函式內的程式碼
return 回傳值
🟢 基本範例
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
📌 函式的組成
- 函式名稱(Function Name):
add
- 參數(Parameters):
a, b
(可選) - 回傳值(Return Value):使用
return
回傳結果(可選)
🟢 沒有回傳值的函式
如果函式內沒有 return
,則會回傳 None
:
def say_hello():
print("Hello!")
result = say_hello()
print(result) # None
🔹 函式參數
Python 支援不同類型的函式參數:
- 預設參數(Default Parameter)
- 不定參數(Arbitrary Arguments)
🟢 預設參數
def greet(name="Guest"):
print(f"Hello, {name}!")
greet() # Hello, Guest!
greet("Alice") # Hello, Alice!
📌 若沒有提供參數,則使用預設值 "Guest"
。
🟢 不定參數(*args
)
當參數數量不固定時,可以使用 *args
:
def add_all(*numbers):
return sum(numbers)
print(add_all(1, 2, 3, 4, 5)) # 15
📌 *args
代表可變數量的參數,會以「元組(Tuple)」的形式接收。
🔹 匿名函式(Lambda Function)
Python 提供 lambda 函式(匿名函式)來簡化短小的函式,語法如下:
lambda 參數1, 參數2, ...: 表達式
🟢 範例
add = lambda a, b: a + b
print(add(3, 5)) # 8
📌 適用場景
- 簡單的數學運算
- 排序時作為
key
參數 - 與
map()
,filter()
,reduce()
搭配使用
🔹 內建函式(Built-in Functions)
Python 提供許多 內建函式,可以直接使用:
函式 | 說明 | 範例 |
---|---|---|
abs(x) |
取絕對值 | abs(-5) → 5 |
max(x, y, ...) |
取最大值 | max(1, 5, 3) → 5 |
min(x, y, ...) |
取最小值 | min(1, 5, 3) → 1 |
len(x) |
取得長度 | len("hello") → 5 |
round(x, n) |
四捨五入 | round(3.14159, 2) → 3.14 |
範例:
print(max(10, 20, 30)) # 30
print(len("Python")) # 6
🔹 模組(Module)
模組(Module)是包含 Python 函式與變數的檔案,讓我們可以在不同的程式中重複使用這些功能。
🟢 引入 Python 內建模組
import math
print(math.sqrt(25)) # 5.0
print(math.pi) # 3.141592653589793
📌 Python 內建模組
math
:數學運算random
:隨機數datetime
:日期時間處理os
:檔案與系統操作sys
:系統參數
🟢 自訂模組
我們也可以自己建立模組,然後在另一個 Python 檔案中引入。
步驟 1:建立 mymodule.py
def greet(name):
print(f"Hello, {name}!")
步驟 2:在主程式引入
import mymodule
mymodule.greet("Alice") # Hello, Alice!
📌 模組的優點
- 提高程式的模組化(每個模組負責不同功能)
- 方便重複使用
- 減少程式碼長度
📌 第 4 小時小結
✅ 函式(Function)可以封裝重複的程式碼,提高可讀性與維護性
✅ 函式的基本語法:def 名稱(參數): return 回傳值
✅ 參數可以有預設值,也可以使用 *args
處理不定數量參數
✅ 匿名函式(Lambda)適用於簡短的計算或排序
✅ Python 內建許多函式,如 max()
, len()
, round()
✅ 模組(Module)允許我們將函式封裝到外部檔案,提升程式的模組化與重複使用性
至此,你已經掌握了 Python 函式與模組,接下來我們將進入 資料結構(列表、字典、集合、元組),讓你能更有效地處理數據!🚀
沒有留言:
張貼留言