Python程序计算身体质量指数BMI(2)

290 阅读3分钟

一、需求

根据男女的体重、体重、性别,进行BMI指数计算,输出结果:正常指数输出请继续保持,如BMI指数超出正常指数则输出体重的正常范围如(您的正常体重xx公斤~xx公斤)

二、使用步骤

1.代码实现

代码如下(示例):

name = str(input("请输入你的姓名:"))
height = eval(input("请输入你的身高(m):"))
weight = eval(input("请输入你的体重(kg):"))
sex = input("请输入你性别:")
BMI = weight / pow(height, 2)          # BIM指数计算公式 BMI=体重(kg)/身高(m)*身高(m),pow(x,y,z)当省略取余数字z时,pow函数返回x的y次方的值。
print("BMI值为:{:.2f}".format(BMI))    # {:.2f} 调用方法保留小数点后两位
mmin = 20.0 * (height ** 2)
mmin = round(mmin, 2)
mmax = 25.0 * (height ** 2)
mmax = round(mmax ,2)
wmin = 18.5 * (height ** 2)
wmin = round(wmin , 2)
wmax = 24.0 * (height ** 2)
wmax = round(wmax , 2)
if sex == '男':
    print("尊敬的",name,"先生,你的BMI指数为",round(BMI,2))
else:
    if BMI < 20.0:
        print("您的正常体重",mmin,"公斤",mmax,"公斤,现在你体重偏轻,加强饮食")
    else:
        if 20.0 < BMI < 25:
            print("您体重正常,请继续保持")
        else:
            if 25 < BMI < 28:
                print("您的正常体重",mmin,"公斤",mmax,"公斤,现在你体重偏重,加强运动")
            else:
                if 28 < BMI < 32:
                    print("您的正常体重",mmin,"公斤",mmax,"公斤,现在你体重肥胖,加强运动")
                else:
                    if BMI > 32:
                        print("您的正常体重",mmin,"公斤",mmax,"公斤,现在你体重严重肥胖,加强运动")

if sex == '女':
    print("尊敬的",name,"女士,你的BMI指数为",round(BMI,2))
else:
    if BMI < 18.5:
        print("您的正常体重",wmin,"公斤",wmax,"公斤,现在你体重偏轻,加强饮食")
    else:
        if 18.5 < BMI < 24:
            print("您体重正常,请继续保持")
        else:
            if 24 < BMI < 27:
                print("您的正常体重",wmin,"公斤",wmax,"公斤,现在你体重偏重,加强运动")
            else:
                if 27 < BMI < 32:
                    print("您的正常体重",wmin,"公斤",wmax,"公斤,现在你体重肥胖,加强运动")
                else:
                    if BMI > 32:
                        print("您的正常体重",wmin,"公斤",wmax,"公斤,现在你体重严重肥胖,加强运动")

总结

首先,我们使用input()函数提示用户输入身高和体重数据,这里使用了eval()  ,eval() 函数用来执行一个字符串表达式,并返回表达式的值。然后计算男女的BMI正常指数范围,使用round() 方法将返回的浮点数x的四舍五入值。。

然后,我们使用BMI的计算公式计算BMI值,并将结果保存在名为BMI的变量中。计算BMI时,需要注意身高的单位应该是米,体重的单位应该是公斤。在计算身高的平方时,这里的身高使用了pow() 函数方法能够更好的返回 xy(x 的 y 次方) 的值(身高的二次方)。

接下来,我们使用字符串格式化方式输出BMI的值。{:.2f}表示保留两位小数的浮点数类型。这里需要注意,最后,我们使用条件语句中的if-else语句判断男女BMI的范围,输出对应的结果。