0.語法
使用關鍵詞def定義函數, 要注意的點是函數的參數設置和返回值.
def func_name(para):
"""函數描述"""
# TODO, 此處爲函數体, body
return exp # 返回語句視需要添加
1.參數設置
1.1.位置參數
在函數的定義和調用傳參時, 以實參出現的位置判定所屬:
def ceshi(x, y):
print(x, y)
ceshi(5, 2) # 5 2
ceshi(2, "ceshi") # 2 ceshi
1.2.關鍵字參數
關鍵字參數是指, 在傳參時用函數定義中參數列表的關鍵字知名實參所屬, 不要求實參順序:
def ceshi(x, y):
print(x, y)
ceshi(x=20, y='數字') # 20 數字
ceshi(y='20', x='數字') # 數字 20
1.3.可變數量參數
可變數量參數是指函數可接受任意數量的參數, 以實際傳參爲準, 需要在函數定義中使用*, 即將任意可能的參數視作一个列表傳入:
def make_dumplings(*toppings):
"""打印所有已選配料"""
print("以下是您的餃子將添加的餡料:")
for topping in toppings:
print("--" + topping)
make_dumplings('芹菜', '牛肉', '茴香', '蔥白')
# 以下是您的餃子將添加的餡料:
# --芹菜
# --牛肉
# --茴香
# --蔥白
結合使用位置參數和可變數量參數時, 要將可變參數(*list_)置于參數列表的最末:
def make_dumplings(number, *toppings):
"""打印所有已選配料"""
print(f"您一共點了{number}个餃子.")
print("以下是您的餃子將添加的餡料:")
for topping in toppings:
print("--" + topping)
make_dumplings(20, '芹菜', '牛肉', '茴香', '蔥白')
# 您一共點了20个餃子.
# 以下是您的餃子將添加的餡料:
# --芹菜
# --牛肉
# --茴香
# --蔥白
1.4.可變數量的關鍵字參數
若函數接受任意數量的關鍵字參數, 需要在參數列表中使用(**形參名)的形式, 此時是將任意數量的關鍵字參數視作字典傳入的, 多用在不確定信息種類和數量的場合:
def book(title, **book_info):
"""創建一个包含書籍信息的字典, 並返回"""
book_dict = {"書名": title}
# 使用for循環遍歷實參字典, 並添加到將返回的字典中
for key, value in book_info.items():
book_dict[key] = value
# 返回根據實參創建的字典
return book_dict
book('三國志', '作者'='陳壽', '版本'='信述堂重刊本')
print(book)
# ['書名'='三國志', '作者'='陳壽', '版本'='信述堂重刊本']