普通收集形参
定义方法:
def func(*args):
pass
args => arguments 参数
作用:可以把一些没人要的普通实参收集过来,打包成一个元组,也叫可变参数
def func(a,b,c,*args):
print(a,b,c) # (1, 2, 2)
print(args) # (4, 5, 6, 545)
func(1,2,3,4,5,6,545)
顺序: 普通形参 默认形参 普通收集形参
-
做任意个数的累加和
def func(*args):
total = 0
for i in args: # 使用时,无需加*号
total += i
print(total)
func(1,2,3,4,5,10,20)
关键字收集形参
定义方法:
def func(**kwargs):
pass
kwargs => keyword arguments # 关键字参数
作用:可以把一些没人要的关键字实参收集过来,打包成一个字典
def func(a,b,c,**kwargs):
print(a,b,c)
print(kwargs) # {'ee': 1, 'ff': 2, 'zz': 3}
func(a=1,c=3,b=2,ee=1,ff=2,zz=3)
-
做任意个数的值的拼接
班长:杜星壮
班花:卢媛媛
吃瓜群众:雷亮,西林,goldv
k , v
1('monitor', '杜星壮')
2('classflower', '卢媛媛')
3('egp1', '雷亮')
4('egp2', '西林')
5('egp3', 'goldv')
k,v = ('monitor', '杜星壮')
k => monitor
v => 杜星壮
def func(**kwargs):
strvar = ""
dic = {"monitor":"班长","classflower":"班花"}
print(kwargs)
# {'monitor': '杜星壮', 'classflower': '卢媛媛', 'egp1': '雷亮', 'egp2': '西林', 'egp3': 'goldv'}
print( kwargs.items() ) # 获取字典的键值对
dict_items( [('monitor', '杜星壮'), ('classflower', '卢媛媛'), ('egp1', '雷亮'), ('egp2', '西林'), ('egp3', 'goldv')])
for k,v in kwargs.items():
# 键在字典中,在获取元素,否则报错; dic["egp1"] 没有个该键会报错
if k in dic:
print(dic[k]) # 循环两遍在字典中 2 班长 班花
print(dic[k] + ":" + v)
else:
print(k) # 循环三遍在字典外 3 egp1 egp2 egp3
strvar += v + " , " # 拼接一个完整的字符串到strvar这个变量中
print( "吃瓜群众:" , strvar.strip(" , ") )
func( monitor="杜星壮",classflower="卢媛媛",egp1="雷亮",egp2="西林",egp3="goldv" )