當需要執行的程式碼變多,除了整個程式碼會變得十分冗長之外,要做相同的事情時,要將同一段code重複貼上許多次,而函式可以解決這個問題。
函式可以使得程式碼更加高效的執行、可讀性更強,並且易於維護,也能將其參數化來增加靈活性。
語法:
def function_name(parameters):
# 待執行的函數程式碼
return result
範例1:
def greet(name):
return f"Hello, {name}!"
message = greet("Alice")
print(message) # 輸出: Hello, Alice!
範例2:
def add(a, b):
return a + b
result = add(5, 3)
print(result) # 輸出: 8
範例3(預設參數):
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
print(greet("Bob")) # 輸出: Hello, Bob!
print(greet("Bob", "Hi")) # 輸出: Hi, Bob!
範例4(任意數量的參數):使用 *args和**kwargs可以處理不確定數量的參數。
def sum_all(*args):
return sum(args)
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="Diana", age=30)
# 輸出:
# name: Diana
# age: 30
範例5(迴圈):
def factorial(n):
"""
計算給定數字的階乘。
"""
if n == 0:
return 1
return n * factorial(n - 1)
print(factorial(5)) # 輸出: 120