在 Python 中,函數 是一段可以重複使用的代碼塊,用來執行特定的任務。通過函數,可以讓代碼更具結構性和可重用性。函數使用關鍵字 def 來定義,並且可以接受參數和返回值。
def 函數名(參數1, 參數2, ...):
"""
可選的文檔字符串,描述函數的功能
"""
函數體
return 返回值 # 可選
# 定義函數
def add_numbers(a, b):
result = a + b
return result # 返回計算結果
# 調用函數
sum_result = add_numbers(3, 5)
print(sum_result) # 輸出: 8
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # 輸出: Hello, Alice!
def greet(name="Guest"):
print(f"Hello, {name}!")
greet() # 輸出: Hello, Guest!
greet("Alice") # 輸出: Hello, Alice!
args
和 kwargs
args
:用來傳遞不定數量的位置參數。kwargs
:用來傳遞不定數量的關鍵字參數。# 使用 *args 傳遞多個參數
def sum_all(*args):
total = sum(args)
return total
print(sum_all(1, 2, 3, 4)) # 輸出: 10
# 使用 **kwargs 傳遞多個關鍵字參數
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25, city="New York")
函數可以使用 return 語句來返回結果。如果沒有使用return
,函數會默認返回None
。
def multiply(a, b):
return a * b
result = multiply(4, 5)
print(result) # 輸出: 20
def get_person_info():
name = "Alice"
age = 30
return name, age
name, age = get_person_info()
print(name) # 輸出: Alice
print(age) # 輸出: 30
匿名函數是使用lambda
關鍵字定義的簡短函數,適合用來定義一些簡單的邏輯。
# 定義一個 lambda 函數,計算兩個數字的和
add = lambda x, y: x + y
print(add(3, 5)) # 輸出: 8
# 與 map、filter 等函數結合使用
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared) # 輸出: [1, 4, 9, 16]
函數可以包含文檔字符串(docstring),這是一種可選的描述性文本,用來說明函數的功能。文檔字符串可以使用 """
包圍,並且可以在調用help()
函數時顯示。
def greet(name):
"""
這個函數用來問候某個人
:param name: 被問候者的名字
"""
print(f"Hello, {name}!")
help(greet)
def outer_function():
def inner_function():
print("這是內部函數")
inner_function()
outer_function()
def outer_function(text):
def inner_function():
print(text)
return inner_function
my_func = outer_function("Hello, World!")
my_func() # 輸出: Hello, World!
高階函數是指將函數作為參數傳遞給另一個函數,或者返回一個函數作為結果的函數。
# 將函數作為參數傳遞
def apply_function(func, value):
return func(value)
result = apply_function(lambda x: x**2, 5)
print(result) # 輸出: 25