已有183人关注
可变参数*parameter
发表在Python图书答疑 2019-04-25 悬赏:2 学分 《零基础学Python》第6章 函数 170页-171页
是否精华
版块置顶:

第170页的实例3根据身高和体重计算BMI指数(共享升级版)中最后一行fun_bmi_upgrade(list_w,list_m)为什么没加‘*’,上面的param = ['蓝山','卡布奇诺','土耳其']

                        printcoffee(*param) 怎么加‘*’了?

分享到:
精彩评论 4
无语_mrkj
学分:3155 LV11
2019-04-26
沙发

加*和不加*和您要传递的参数个数有关系。

不加*时,表示每一个变量作为一个参数,例如,实例03的最后一行代码传递到fun_bmi_upgrade()方法中的是两个参数,第一个参数是一个列表,而上面加*的方法,虽然在调用方法时,只写了一个加*的变量名,但是它实际上传递的是3个参数,也就是把加*的列表的每一个元素各作为一个参数进行传送。这种写法和  printcoffee('蓝山','卡布奇诺','土耳其') 是一样的。


177ning
学分:236 LV4
2019-04-26
板凳

还不明白

177ning
学分:236 LV4
2019-04-26
地板

无语_mrkj 发表于2019-04-26 09:02

加*和不加*和您要传递的参数个数有关系。

不加*时,表示每一个变量作为一个参数,例如,实例03的最后一行代码传递到fun_bmi_upgrade()方法中的是两个参数,第一个参数是一个列表,而上面加*的方法,虽然在调用方法时,只写了一个加*的变量名,但是它实际上传递的是3个参数,也就是把加*的列表的每一个元素各作为一个参数进行传送。这种写法和  printcoffee('蓝山','卡布奇诺','土耳其') 是一样的。


老师能讲的再清楚点吗?

无语_mrkj
学分:3155 LV11
2019-05-15
4L

实例3最后一行fun_bmi_upgrade(list_w,list_m)没加‘*’是因为相体现一下这里的参数的个数是不固定的,这种用法相当于图6.11上面的代码的用法。而这个实例要想和您说的图6.11下面的代码一样的用法(加上*)的可以这样修改:

list_w = [('绮梦',1.70,65),('零语',1.77,50),('黛兰',1.72,66)]
list_m = [('梓轩',1.80,75),('冷伊一',1.75,70)]
list1 = [list_w,list_m]
fun_bmi_upgrade(*list1)

不知道这么解释您能明白不?


首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照