我想解决这个问题:
http://www.pyschools.com/quiz/view_question/s3-q6
使用“if/elif/elif”条件来编写一个函数来计算一个人的体重指数,并返回与心血管疾病相关的风险。
体重指数=体重(公斤)/(身高(米)*身高(米))
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)
“你的体重指数是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我知道代码不是很漂亮,但是它经过了大量的尝试和错误。我考虑添加代码来检查给定数字中的任何一个是否为零,但仍然失败。
我没看到什么?
发布于 2012-01-19 01:27:55
if bmi >= 25.5:
retv += " (High Risk)."您指定了>= 25.5,但在说明中指定了BMI超过27.5的高风险
发布于 2012-01-19 01:29:30
if bmi >= 25.5:应该是
if bmi >= 27.5:发布于 2012-02-03 02:39:48
以下是答案:
def BMI(weight, height):
BMI = round(weight/(float(height)*height),1)
return "%.1f" %BMIhttps://stackoverflow.com/questions/8919809
复制相似问题