有时可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做可变参数。可变参数也称不定长参数,声明时不会命名。
在
Python
中,可以定义可变参数。即传入函数中的实际参数可以是任意多个。
1、定义语法
def functionname([formal_args,] *args, **kwargs):
pass
定义可变参数时,主要有两种形式:一种是*parameter
,另一种是**parameter
。
2、*parameter
如果是求多个数之和?
调用函数时,实参个数不确定(不确定要传递几个值时),函数定义时使用*形参,一般叫args
,放在形参定义的最后一个位置。当然不一定要叫args
,可以叫m
或n
之类的。形参名还是叫args
,*
告诉python
解释器多余的参数传递给args
。
*parameter
表示接收任意多个实际参数并将其放到一个元组中。
3、示例
某某大学有很多个学生社团,想要计算每个人的BMI
指数。
4、拆包
有时可以把相应的实参值放在相应的元组、列表中。
在实参中,*
元组或*
列表,表示将元组或列表拆成一个个的值,当参数传递,称为拆包。
5、练一练:
(1)定义一个函数,计算任意多个数的和。
(2)定义一个函数,计算任意多个数的和。这些数从键盘录入,存储到列表中,直到输入0结束。