在 Python 中,函式(Function) 是一段可重複使用的代碼,用於執行特定的任務。
函式能讓代碼更具結構性、提高可讀性,並支持代碼重用。函式通常可以接受參數並返回結果。
Python 提供了大量的內建函式,這些函式不需要額外導入模組即可使用。
特性:即開即用,功能強大。
print(len("Hello")) # 內建的 len() 函式,返回字串的長度
max([1, 5, 3]) # 返回列表中的最大值
int("123") # 將字串轉換為整數
常見的內建函式:
數學相關:abs()、pow()、round()、sum()、min()、max()
類型轉換:int()、float()、str()、list()、dict()、tuple()
輸出輸入:print()、input()
邏輯判斷:all()、any()、bool()
這是由用戶自行定義的函式,根據需求來執行特定任務。
特性:靈活,能根據特定問題量身打造。
def add(a, b):
return a + b
print(add(3, 5)) # 輸出:8
匿名函式是一種簡化的函式,不需要用 def 定義,而是直接使用 lambda 關鍵字。
特性:適合一次性的小功能,常與高階函式(如 map()、filter())結合使用。
語法:lambda 參數: 表達式
square = lambda x: x ** 2
print(square(4)) # 輸出:16
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # 輸出:[1, 4, 9, 16]
這些函式可以接受其他函式作為參數,或者返回一個函式。
特性:結合函式與邏輯,適合處理迭代操作。
常見高階函式:
# 使用 map 將數字列表中的每個元素平方
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 輸出:[1, 4, 9, 16]
# 使用 filter 過濾偶數
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even) # 輸出:[2, 4]
來自 Python 模組或套件的函式,需要透過 import 導入後才能使用。
特性:專門解決特定問題,功能豐富。
import math
print(math.sqrt(16)) # 輸出:4.0
from random import randint
print(randint(1, 10)) # 輸出:1 到 10 的隨機整數
總結
Python 的函式能夠靈活解決各種問題: