Python当如输入的参数个数不能确定时,会定义不定形参的函数,即多变形参函数。这样定义的函数可以在调用函数时决定函数参数的个数,更加灵活好用。
1.不定参数:不确定调用函数时输入几个参数,所以使用不定参数函数,格式如下:
def functionname([formal_args,] *var_args_tuple ):
"函数描述文档"
function_suite
return [expression]
2.参数时多变形参和一般参数共存的情况,这个时候一般参数要写多变形参的前面
def fc_sum(arg1, *args): #不定参数写法是“*参数名”,其实不定参数是个元组
"将所有参数求和"
sum = agr1
for i in args: #因为不定参数底层是个元组,所以可以遍历参数
sum += i
print("这是所有参数的求和:%f"%sum)
# 调用fc_sum函数
fc_sum(1,2,3,4,5,6,7,8,9,10,11.1,12.2) #传入的参数类型自定义输入
fs_sum(1) #有可变形参可以不传入参数,可变形参参数至少0个即可。
=================================================================================
注意:这里如没有arg1时,默认传入的所有参数都是可变参数,否则要将第一位的1分配给arg1
这是所有参数的求和:78.300000
这是所有参数的求和:1.000000
==================================================================================
3.参数只有多变形参的情形
def fc_sum( *args): #注意不定参数和固定参数可以混合用 ,也可以单独用,传参时按顺序分配
"不定参数求和"
sum = 0
for i in args: #因为不定参数底层是个列表,所以可以遍历参数
sum += i
print("这是所有参数的求和:%f"%sum)
# 调用fc_sum函数
fc_sum(1,2,3,4,5,6,7,8,9,10,11.1,12.2)
==================================================================================
这是所有参数的求和:78.300000
==================================================================================
4.多变形参还有使用两个**的情况:两个星号 ** 的参数会以字典的形式传入
def functionname([formal_args,] **var_args_dict ):
"函数_文档字符串"
function_suite
return [expression]
===============================================================================
def p2(arg1, **vardict):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vardict)
# 调用printinfo 函数
p2(1, a=2, b=3)
==========执行结果如下:==========================================================
{'a': 2, 'b': 3}