【发布时间】:2021-01-22 17:45:16
【问题描述】:
我尝试解决以下问题
编写计算体重指数的函数bmi (bmi = weight / height ^ 2)。
根据计算出的bmi 值返回值:
if bmi <= 18.5 return "Underweight"
if bmi <= 25.0 return "Normal"
if bmi <= 30.0 return "Overweight"
if bmi > 30 return "Obese"
我的代码:
def bmi(weight, height):
b = weight / height ** 2
return ['Underweight', 'Normal', 'Overweight' , 'Obese'][(b <= 18.5) + (b <= 25) + (b <=30)]
我得到一个错误的答案有人知道错误在哪里吗?
【问题讨论】:
-
你对
['Underweight', 'Normal', 'Overweight' , 'Obese'][(b <= 18.5) + (b <= 25) + (b <=30)]的理解是什么,它有什么作用? -
这不是指错路了吗?
-
True等于整数1。如果您希望您的索引有意义,您需要以相反的顺序制作列表,或者翻转您的检查条件(即从b <= 18.5到b > 18.5) -
不应该是>=?