def f(*x): print(x,type(x)) f(1) f('a','b') f(1,2,3,[23,31])
如上程序,定义了一个函数,里面的参数加*代表可变参数,也就是可以输入多个参数,但是,输入进去后参数的类型就发生了变化。如下为程序运行结果:
(1,) <class 'tuple'> ('a', 'b') <class 'tuple'> (1, 2, 3, [23, 31]) <class 'tuple'>
运行结果显示,参数变为了元组的形式,这一点以后一定要多注意!!!
可以利用这个特点做些事情:
(1)两个数相乘:
#两个数相乘 def f2(*x): print(x[0]*x[1]) f2(10,20)
(2)将输入参数做累乘
#将输入参数做累乘 def f3(*x): s = 1 for i in range(len(x)): s = s * x[i] print(s) f3(10,20,30)
(3)求输入参数的平均值
def f6(*m): s = 0 for i in range(len(m)): s = s + m[i] s = s/len(m) print(s) #sum(m)/len(m) #或者直接用这句话代替上边的几句 f6(1,1,1,1)