多值参数:
在Python中,有时需要一个函数处理多个数据,这时用到多值参数。在参数前加一个 * 可以接收元组,加 ** 可以接收字典。一般用 *args存放元组参数,用 **kwargs存放字典参数。
例:定义一个函数,接收多个整数并求和
def sun_numbers(*args):
num = 0
print(args)
for n in args:
num += n
return num
result = sun_numbers(5,6,7,8,9)
print(result)
结果:
(5, 6, 7, 8, 9)
35
元组和字典作为多值参数时,有时希望将一个元组或字典变量直接传递给函数,就用到拆包:在对应的元组变量前加一个
*在对应的字典变量前加两个 **
def demo(*args,**kwargs):
print(args)
print(kwargs)
gl_nums =(1,2,3,4,5)
gl_dict ={"name":"小黄","age":16}
demo(*gl_nums,**gl_dict)#元组和字典的拆包,否则会都作为元素传入元组。
结果:
(1, 2, 3, 4, 5)
{‘name’: ‘小黄’, ‘age’: 16}
缺省参数:
在定义函数时,我们可以为某个参数指定一个默认值,有默认值的参数被称为缺省参数。在调用函数时如果没有传入缺省函数的值,则会使用默认值。
def print_info(name,gender=True):
#要注意缺省参数放在参数列表的最后
gender_text ="男生"
if not gender:
gender_text ="女生"
print("%s是%s" %(name,gender_text))
print_info("小明")
print_info("小美",False)
结果:
小明是男生
小美是女生