若想讓函數接受任意個參數,就可以定義一個可變的參數:
def fn(*args): print args fn() >>>() fn(1,2,5,6) >>>(1,2,5,6)
原理是Python解釋器把傳入的一組參數封裝在一個tuple傳遞給可變參數,因此在函數內部,直接把變量args看成一個tuple就好了,目的是簡化調用
小習題:
假設我們要計算任意個數的平均值,就可以定義一個可變參數:
def average(*args): ...
這樣,在調用的時候,可以這樣寫:
>>> average() 0 >>> average(1, 2) 1.5 >>> average(1, 2, 2, 3, 4) 2.4
?
請編寫接受可變參數的 average() 函數。
代碼:
def average(*agrs): sum = 0.0 if len(args) == 0: return sum for x in agrs: sum = sum +x return sum / len(args)print average() print average(1,2) print average(1,2,3,4)
?