关键字可变参数

用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
{}

results matching ""

    No results matching ""