python入门五(函数)【5-4 python中定义可变参数】
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 就好了。
定义可变参数的目的也是为了简化调用。假设我们要计算任意个数的平均值,就可以定义一个可变参数:
def average(*args): ...
这样,在调用的时候,可以这样写:
1 >>> average() 2 0 3 >>> average(1, 2) 4 1.5 5 >>> average(1, 2, 2, 3, 4) 6 2.4
任务
请编写接受可变参数的 average() 函数。
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)