函数传参字典_Python新手上车17:函数传递任意多个参数

Linxuxlj 机械工程师学编程 今天

46c08a55f510f4a381ed7cecfd373343.png

f0d9ff88dd5dd3b646a34dcadcdd61d2.png

传递任意数量参数

 有时候,你预先不知道需要传入多少参数,此时我们应该怎么做呢?

def basketball_player(*players):    print(players)basketball_player('Yao ming')basketball_player('Yao Ming','Yi JianLin','Wang zhizhi')

第一行:定义一个篮球运动员的函数,*players代表传入任意参数

第二行:打印运动员

第三行:调用篮球运动员函数,并传入一个参数

第四行:调用篮球运动员函数,并传入三个参数

看看执行结果:

78a0c03e8af819b730a046e0f91dbdc7.png

fec5486d5f40d373a55a24de48de3324.png

结合使用位置参数和任意数量参数

     函数可以先匹配位置参数,再匹配和关键字参数

def basketball_player(numbers,*players):    print("I input %d players" % numbers)    print(players)basketball_player(1,'Yao ming')basketball_player(3,'Yao Ming','Yi JianLin','Wang zhizhi')

第一行:定义一个篮球运动员的函数,numbers 代表*players代表传入任意参数

第二行:打印我输入了几个参数

第三行:打印运动员

第四行:调用篮球运动员函数,传入一个表示输入数量的数字,并传入一个参数

第五行:调用篮球运动员函数,传入一个表示输入数量的数字,并传入三个参数

看看执行结果:

230119719dbcd8ea08b15decfca0508b.png

15987b986458ea8f55ef7e5f2804258f.png

函数接受键值对

我们也可以将函数编写成能够接受任意数量的键值对:

def players_info(p_name,**infos):    info_dic = {}    info_dic['name']=p_name    for key,value in infos.items():        info_dic[key]=value    return info_dicplayers=players_info('Yao Ming',P_height="178CM",P_score=26)print(players)

第一行:定义一个pets_name 函数

第二行:通过循环遍历传入的列表

第三行:打印每个遍历的元素

第四行:我们定义了一个宠物的列表

第五行:调用函数,并传入pets列表

执行结果如下:

354a9b5a1da62a04350894ed456df686.png

f83571c4343467f371afb4e52fb0fc74.png

上期答案与本期习题

1. 定义一个函数,有两个形参,这两个形参是一个字典的值,返回这个字典,调用字典并传参,打印调用的结果

def select_food(vegetable,meat):    foods={"vegetable":vegetable,"meat":meat}    return foodsfood_info=select_food("Potato","Steak")print(food_info)

2.传递一个列表给函数,并在函数里面遍历这个列表,并打印列表元素

def select_food(fruits):    for fruit in fruits:        print(fruit) food_input=['apple','grape','strawberry']select_food(food_input)

本期习题:

1. 定义一个Cars函数,它有两个形参,一个是 car_color,另一个是*car_brand. 调用函数给车颜色传入白色,另外传递BMW、Benz、Audi 三个实参。

更多免费资料,请关注公众号

1b4332346e675804a1acaacf9427b20b.gif

29e6ac452580d28786f9ac8edcb5455c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值