关于可变参数调用
def bmi(*person):
for list_person in person:
for item in list_person:
…
这个,调用时,不需要带*
bmi(list1,list2…)
def bmi(*person):
for item in person:
…
这个调用时,需要带*
bmi(*list1,*list2)
注:list1和list2 都为二维列表,或者里面都有多个元素
总结:调用时,带上*时,则把list1和list2,分别传递二维列表给这么一个形式参数,在通过for循环,分成一维列表赋值给item 变量。在进行下面的执行
若不带上*,则相当于list1和list2,再多构成多一维列表,才传递值给形式参数
============= (‘一梦’, 1.7, 60) =============
(‘一梦’, 1.7, 60) 的身高: (‘haha’, 1.78, 50) 米,体重: (‘带鱼’, 1.66, 60) 千克
抛出异常
附上原代码:
def fun_bmi(*person):
‘’’
功能:根据身高体重计算BMI值
*person:可变参数,该参数中需要含有3个元素列表,姓名,身高,体重
:return:
‘’’
# for list_person in person:
for item in person:
person = item[0]
height = item[1]
weight = item[2]
print(’=’*13,person,’='
13)
print(person,‘的身高:’,height,‘米,体重:’,weight,‘千克’)
bmi = weight/(height
height) #计算BMI指数的公式
print(person,‘的BMI指数为:’,bmi)
#判断身材是否合理
if bmi <18.5 :
print(‘过轻’)
elif 18.5 < bmi < 24.9 :
print(‘正常’)
elif 24.9 < bmi < 29.9 :
print(‘过重’)
else:
print(‘肥胖’)
#
调用函数
*#
list1 = [(‘一梦’,1.7,60),
(‘haha’,1.78,50),
(‘带鱼’,1.66,60)]
list2 = [(‘miaa’,1.8,75),
(‘yiyi’,1.75,70)]
fun_bmi(*list1,*list2)