若想让函数接受任意个参数,就可以定义一个可变的参数:
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)