那么现在你可以轻松计算出你的体重了吗?(Python)

So now you can easily calculate your weight?(Python)

说明 : 我想编写一个程序,使用以下公式计算用户的 BMI。

BMI= WeightInKilograms/HeightInMeters*HeightInMeters

注意我们的身高和体重输入要小数点后两位数,然后根据BMI范围给我们显示以下信息。

 Underweight: BMI < 18.5
Normal: 18.5 <= BMI < 25
Overweight: 25 <= BMI < 30
Obese: 30 <= BMI

例子

input:
93
1.71

output:
31.80
Obese

我的问题

这是我的代码,当我 运行 它给了我一个来自 (else) 的错误并且确实 我的解决方案正确吗?

Weight_In_Kilograms = float(input())

Height_In_Meters = float(input())

BMI = Weight_In_Kilograms / Height_In_Meters*Height_In_Meters

print('BMI')

if 'BMI' < 18.5:
   print("Underweight")
   else 18.5 <= 'BMI'< 25:
   
   print("Normal")
   
   else 25 <= 'BMI' < 30:
        
       print("Overweight")
       
       else 30 <= 'BMI':
          print("Obese") 
           
          

你的代码有很多错误。您在 if 条件中使用 else 条件。这将引发错误。此外,您不能在某些条件下使用 else。

如果要检查嵌套形式的条件,则应使用 elif 而不是 else 关键字。

此外,您正在使用字符串 'BMI' 而不是变量 BMI

检查这些值

这是更正后的代码。

Weight_In_Kilograms = float(input())

Height_In_Meters = float(input())

BMI = Weight_In_Kilograms / (Height_In_Meters*Height_In_Meters)

print('BMI')

if BMI < 18.5:
   print("Underweight")
elif BMI < 25:
   print("Normal")
elif BMI < 30:
    print("Overweight")
else:
    print("Obese")

是的,正如 jaychandra 提到的,您的代码中有几个错误。这是我的解决方案。

(round(BMI, 2) 只是意味着程序会将您的值四舍五入到小数点后两位(如您的示例所示,它将打印 31.80)

Weight_In_Kilograms = float(input())

Height_In_Meters = float(input())

BMI = Weight_In_Kilograms / (Height_In_Meters**2)

print(round(BMI, 2))

if BMI < 18.5:
   print("Underweight")
elif 18 <= BMI < 25:
   print("Normal")
elif 25 <= BMI < 30:
    print("Overweight")
else:
    print("Obese")