练习22
# 你的函数,为了拓展,对于传入的实参数量不固定,万能参数,也叫动态参数
# *args(位置参数),**kwargs(位置参数)
# def sum1(*args,**kwargs): # 在函数的定义时,在 *位置参数,聚合。
# # *argv 将所有实参的位置参数聚合到一个元组,并将这个元组赋值给args
# print(args)
# print(kwargs)
#
# sum1(1,2,3,4,name='alex',age=1000)
# 用万能参数完成一个万能计算器,用户通过调用这个函数传任何的数字我都能计算他的和
# def my_sum(*args):
# count = 0
# for i in args:
# count+=i
# return count
# print(my_sum(23,24,54))
# *的魔性用法
# 在函数的定义时,在 *位置参数,**位置参数 聚合。
# 在函数的调用(执行)时,在 *位置位置,**位置参数参数 打散
# l1 = [1,2,3]
# l2 = [111,22,33,'alex']
# def func1(*args):
# return tuple(args[0] + args[1])
# # args (1,2,3,111,22,33,'alex')
# print(func1(l1,l2))
# def func1(*args,**kwargs):
# return args
# return kwargs
# args (1,2,3,111,22,33,'alex')
# print(func1(*l1,*l2))
# print(func1(*(1,2,3),*('alex','sb'))) # 等同于 func1(1,2,3,'alex','sb')
# print(func1(*'alex',*'sb'))
# print(func1(**{'name':'alex'},**{'age':1000})) # 等同于 func1({'name':'alex','age':1000})
# 形参的顺序
# 位置参数,默认参数,动态参数*args **kwargs
# def func1(a,b,sex='男'):
# print(a)
# print(sex)
#
# func1(100,200,)
# 位置参数, *args, **kwargs, 默认参数
# def func1(a,b,*args,sex='男',**kwargs):
# print(a,b)
# print(sex)
# print(args)
# print(kwargs)
#
# func1(100,200,1,2,3,4,5,2,sex='nv',name='alex',age=1000)