2025年3月6日 星期四

Python 18 小時入門--第 4 小時:函式與模組(Functions & Modules)

 📌 第 4 小時:函式與模組(Functions & Modules)

在程式設計中,函式(Function)可重複使用的程式碼片段,可提高程式的結構性與可讀性。Python 提供兩種函式:

  1. 內建函式(Built-in Functions):如 print(), len(), max(), min()
  2. 自訂函式(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

📌 函式的組成

  1. 函式名稱(Function Name)add
  2. 參數(Parameters)a, b(可選)
  3. 回傳值(Return Value):使用 return 回傳結果(可選)

🟢 沒有回傳值的函式

如果函式內沒有 return,則會回傳 None

def say_hello():
    print("Hello!")

result = say_hello()
print(result)  # None

🔹 函式參數

Python 支援不同類型的函式參數:

  1. 預設參數(Default Parameter)
  2. 不定參數(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 函式與模組,接下來我們將進入 資料結構(列表、字典、集合、元組),讓你能更有效地處理數據!🚀

沒有留言:

張貼留言