关键字可变参数
用for循环解析可变参数列表:
def squsum(*param):
sum = 0
for i in param:
sum += i*i
print(sum)
squsum(1,2,3) # 14
squsum(*[1,2,3]) # 14
需求:设计一个函数,可以知道全球任意一个城市的温度
def city_temp(**param):
print(param)
print(type(param))
city_temp(bj="12c",xm="26c",sz="27c")
{'bj': '12c', 'xm': '26c', 'sz': '27c'}
<class 'dict'>
def city_temp(**param):
for k,v in param:
print(k, v)
city_temp(bj="12c",xm="26c",sz="27c")
b j
x m
s z
正确方法1
def city_temp(**param):
for k,v in param.items():
print(k, v)
city_temp(bj="12c",xm="26c",sz="27c")
bj 12c
xm 26c
sz 27c
正确方法2
def city_temp(**param):
for k in param:
print(k, param[k])
city_temp(bj="12c",xm="26c",sz="27c")
bj 12c
xm 26c
sz 27c
如何把一个字典当作可变参数传入? 字典前面加2个*
def city_temp(**param):
for k,v in param.items():
print(k, v)
a = {'bj':'32c','xm':'16c','sz':'27c'}
city_temp(**a)
bj 32c
xm 16c
sz 27c
什么都不传
def city_temp(**param):
print(param)
for k,v in param.items():
print(k, v)
a = {'bj':'32c','xm':'16c','sz':'27c'}
city_temp()
{}
不同类型参数混合使用
def city_temp(param1,**param):
print(param1)
print(param)
for k,v in param.items():
print(k, v)
a = {'bj':'32c','xm':'16c','sz':'27c'}
city_temp(1)
1
{}