BMI 计算 Python 错误结果

BMI calcuration in Python wrong resaults

我必须为列表中的人创建 BMI 计算

patients = [[70, 1.8], [80, 1.9], [150, 1.7]]

现在我的功能是:

def calculate_bmi(weight, height):
    return weight / (height ** 2)

for patient in patients:
    weight, height = patients[0]
    bmi = round(weight/ (height * height), 1)
    print("Patient's BMI is: %f" % bmi)

她把第一个人的结果 [0] 给我看了三遍。我知道我在函数中有第一人称值。 第二件事是如何将BMI值减少到小数点后一位,例如21.6

Patient's BMI is: 21.600000
Patient's BMI is: 21.600000
Patient's BMI is: 21.600000

我不知道如何保存一个函数来计算列表中每个人的 BMI。 任何人都可以帮助我吗?谢谢解答。

您使用 weight, height = patients[0] 将体重和身高重复设置为患者列表中的第一个元素;请记住,for 循环遍历列表中的所有患者,因此您可以使用患者变量,如下所示

def calculate_bmi(weight, height):
    return weight / (height ** 2.0)


for patient in patients:
    weight, height = patient
    bmi = round(weight/ (height * height), 1)
    print("Patient's BMI is: %f" % bmi)

您需要更改代码中的一些内容。 当您遍历 patients 列表时,您需要分配 weight, height = patient[0],patient[1]

只需检查以下代码:

for patient in patients:
     weight, height = patient[0],patient[1]
     bmi = round(weight/ (height * height), 1)
     print("Patient's BMI is: ", bmi)

同时从 print 函数中删除 %f 以仅显示小数点后一位数字。