iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
自我挑戰組

從零開始學Python系列 第 5

[Day5] Python函數

  • 分享至 

  • xImage
  •  

當需要執行的程式碼變多,除了整個程式碼會變得十分冗長之外,要做相同的事情時,要將同一段code重複貼上許多次,而函式可以解決這個問題。
函式可以使得程式碼更加高效的執行、可讀性更強,並且易於維護,也能將其參數化來增加靈活性。


語法:

def function_name(parameters):
    # 待執行的函數程式碼
    return result
  • function_name:函數的名稱,用來識別函數。
  • parameters:函數的參數(可以是多個,並用逗號分隔),用來接收input。
  • return:返回值,這是函數計算結果的output。return可有可無,若沒有則默認為 None。

範例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)
  • def factorial(n)::這行代碼定義了一個名為 factorial 的函式,它接受一個參數 n。
  • if n == 0:檢查參數 n 是否為 0。
  • return 1:根據階乘的定義,0 的階乘是 1。因此,當 n 等於 0 時,函式返回 1。防止無窮遞迴。
  • return n * factorial(n - 1):如果 n 不等於 0,則計算 n 乘以 factorial(n - 1)。使得函式在每次都遞減 n 的值,直到達到n == 0為止。
print(factorial(5))  # 輸出: 120

上一篇
[day4] Python迴圈
下一篇
[Day6] Python數據分析-NumPy基本用法
系列文
從零開始學Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言