python 函数中的可变参数问题

代码如下:

'''
    函数中的可变参数
'''

#定义函数
def bmi(*person):
    for per in person:
        for item in per:
            name = item[0]
            height = item[1]
            weight = item[2]
            print('\n' + '='*13 + name + '='*13)
            print('身高:' + str(height) + '米 \t 体重:' + str(weight) + '千克')
            bmi = weight/(height*height)
            print('bmi指数:', bmi)

#调用函数
listw = [['张三',1.75,80],['李四',1.85,90],['王五',1.95,90]]
listm = [('赵六',1.55,50),('二狗',1.77,40)]
bmi(listw)
bmi(listm)

调用函数那里为什么不是bmi(*list)?这样写就会报错
另外listw = [(),(),()]是什么形式?列表中的元组吗

list是函数,所以要换一个名字,也可以叫person也可以叫list1
listw = [['张三',1.75,80],['李四',1.85,90],['王五',1.95,90]],包含三个元素,每个元素是一个三元组

可变参数,在函数里边所有的参数主城一个元组,你的意识的可能将每个人作为一个参数传入,但是函数在参数解析的时候多了一层循环,所以在bmi(*list)调用的时候回曲线类型不匹配的错误,bmi应该这样定义:
图片说明