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。