5-4 python中定義可變參數python
若是想讓一個函數能接受任意個參數,咱們就能夠定義一個可變參數:數組
1 def fn(*args): 2 print args
可變參數的名字前面有個 * 號,咱們能夠傳入0個、1個或多個參數給可變參數:函數
>>> fn() () >>> fn('a') ('a',) >>> fn('a', 'b') ('a', 'b') >>> fn('a', 'b', 'c') ('a', 'b', 'c')
可變參數也不是很神祕,Python解釋器會把傳入的一組參數組裝成一個tuple傳遞給可變參數,所以,在函數內部,直接把變量 args 當作一個 tuple 就行了。spa
定義可變參數的目的也是爲了簡化調用。假設咱們要計算任意個數的平均值,就能夠定義一個可變參數:code
def average(*args): ...
這樣,在調用的時候,能夠這樣寫:blog
1 >>> average() 2 0 3 >>> average(1, 2) 4 1.5 5 >>> average(1, 2, 2, 3, 4) 6 2.4
請編寫接受可變參數的 average() 函數。class
1 def average(*args): 2 sum = 0.0 3 if len(args) == 0: 4 return sum 5 for x in args: 6 sum = sum + x 7 return sum/len(args) 8 9 print average() 10 print average(1, 2) 11 print average(1, 2, 2, 3, 4)