Intermediate Python for Developers
Jasmin Ludolf
Curriculum Manager
def average(values): """Find the mean in a sequence of values and round to two decimal places.""" average_value = sum(values) / len(values) rounded_average = round(average_value, 2) return rounded_average# Using six arguments print(average(15, 29, 4, 13, 11, 8))
TypeError: average() takes 1 positional argument but 6 were given
Docstring 有助釐清自訂函式的用法
任意引數可讓函式接受任意數量的引數
# 允許任意數量的位置(非關鍵字)引數
def average(*args):
# 函式程式碼維持不變
慣用命名:*args
提供多種用法,且能得到預期結果!
# 以六個位置引數呼叫 average
print(average(15, 29, 4, 13, 11, 8))
13.33
*」:將引數轉為單一可疊代物件(tuple)# 跨多個清單計算
print(average(*[15, 29], *[4, 13], *[11, 8]))
13.33
# 使用任意關鍵字引數 def average(**kwargs):average_value = sum(kwargs.values()) / len(kwargs.values()) rounded_average = round(average_value, 2) return rounded_average
任意關鍵字引數:**kwargs
keyword=value
# 以六個 kwargs 呼叫 average
print(average(a=15, b=29, c=4, d=13, e=11, f=8))
13.33
# 以一個 kwargs 物件呼叫 average
print(average(**{"a":15, "b":29, "c":4, "d":13, "e":11, "f":8}))
13.33
# 以三組 kwargs 呼叫 average
print(average(**{"a":15, "b":29}, **{"c":4, "d":13}, **{"e":11, "f":8}))
13.33
Intermediate Python for Developers