iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0

在 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!
  • 可變參數:argskwargs
  • 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
  • 返回多個值
    Python函數可以同時返回多個值,它們會作為一個元組返回。
def get_person_info():
    name = "Alice"
    age = 30
    return name, age

name, age = get_person_info()
print(name)  # 輸出: Alice
print(age)   # 輸出: 30

伍、匿名函數(lambda 函數)

匿名函數是使用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

上一篇
第9天:集合
下一篇
第11天:模塊與庫
系列文
python30天入門學習13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言