我正试图解决这个问题:
http://www.pyschools.com/quiz/view_question/s3-q6
使用'if / elif / else'条件编写函数来计算人的BMI,并返回与心血管疾病相关的风险。
BMI =体重(kg)/(身高(m)*身高(m))
BMI风险
27.5及以上高风险
23 - 27.4中等风险
18.5 - 22.9低风险
低于18.5营养缺乏症的风险
实施例
HealthScreen(85,1.75)
'你的BMI是27.8(高风险)。'
HealthScreen(68,1.65)
'你的BMI是25.0(中度风险)。'
HealthScreen(60,1.63)
'你的BMI是22.6(低风险)。'
HealthScreen(40,1.58)
'你的BMI是16.0(营养缺乏症的风险)。'
但是我使用此代码验证了私有测试用例
def HealthScreen(weight, height):
bmi = round(weight/(float(height)*height),1)
retv = "Your BMI is " +str(bmi)
if bmi >= 25.5:
retv += " (High Risk)."
elif bmi >=23 and bmi <=27.4:
retv += " (Moderate Risk)."
elif bmi >= 18.5 and bmi <=22.9:
retv += " (Low Risk)."
elif bmi <18.5:
retv += " (Risk of nutritional deficiency diseases)."
return retv
我知道代码不是很漂亮,但它经历了大量的反复试验。我想添加代码来检查给定数字中的任何一个是否为零,但仍然失败。
我没看到什么?
答案 0 :(得分:3)
if bmi >= 25.5:
retv += " (High Risk)."
您指定&gt; = 25.5但在说明中指出高风险是BMI超过27.5
答案 1 :(得分:0)
if bmi >= 25.5:
应该是
if bmi >= 27.5:
答案 2 :(得分:0)
以下是答案:
def BMI(weight, height):
BMI = round(weight/(float(height)*height),1)
return "%.1f" %BMI
答案 3 :(得分:0)
def HealthScreen(weight, height):
height=float(height)
bmi=weight/height**2
if bmi>=27.5:
return 'Your BMI is %.1f (High Risk).' %bmi
elif 27.4>bmi>23:
return 'Your BMI is %.1f (Moderate Risk).' %bmi
elif 22.9>bmi>18.5:
return 'Your BMI is %.1f (Low Risk).' %bmi
else:
return 'Your BMI is %.1f (Risk of nutritional deficiency diseases).' %bmi