bmi计算器给了我错误的转换,不知道为什么


from colorama import Fore

def bmi_calc():
    pounds = float(input('What is your weight lbs ?'))
    height = int(input('What is your height in inches ?'))
    pounds = 703 * pounds
    height = height**2
    bmi = round(pounds / height)
    if bmi <= 16:
        print('Severely Underweight')
        print(Fore.RED + ' Seek Medical Attention')
    elif 16 <= bmi < 18.5:
        print('Underweight')
    elif bmi >= 18.5 < 25:
    print('Healthy')
elif bmi >= 25 < 30:
    print('Overweight')
elif bmi >= 30:
    print('Severely Overweight')
    print(Fore.RED + ' Seek Medical Attention')
print(bmi )

bmi_calc ()

你的体重是多少磅你的身高是多少英寸?60英寸健康的37

进程结束,退出码0

退出代码似乎表明没有任何语法问题,因此代码正在做它应该做的事情。我不确定是不是这个问题,但你为什么有以下几行?

pounds = 703 * pounds
height = height**2

可能是你得到错误转换的原因。

BMI = kg/m**2。将磅换算成千克,乘以0.45359237。要将英寸转换为m,请乘以0.0254。这样做:

pounds = 0.45359237 * pounds
height = (height * 0.0254)**2
bmi = round(pounds / height)

请记住,默认情况下round将舍入到最接近的整数。如果你想要一个十进制的精度,执行bmi = round(pounds / height, 1)

您的elif语句(至少在您向我们展示的代码中)没有缩进。在Python中,缩进非常重要。与C或PhP或Java不同,它们不使用大括号{}来标识函数何时开始或停止。相反,它是指示函数(或其他代码块)何时开始或停止的缩进:

def myFunction():
     print(1)
     print(2)

不一样
def myFunction():
    print(1)
print(2)

在后一种情况下,第二个print语句位于函数的OUTSIDE。

相关内容

最新更新