如何将 BMI 计算添加到以下代码中?

How do I add the BMI calculation to the following code?

下面是我的代码:

def inForm():
  name = requestString("What is your name?")
  age = requestInteger("What is your age?")
  height = requestInteger("What is your height?")
  weight = requestInteger("What is your weight?")
  print "Hello", name, "!", "You are", age,"years old!", "Your height  
  is", height, "cm", "and you weigh", weight, "kg"

我需要将 BMI 计算添加到此代码中,这是我的公式,BMI =weight/(height*height)

根据 BMI 显示这些消息:

您不到 15 岁体重严重偏轻

从 15.0 到 16.0,您的体重严重偏低

从 16.0 到 18.5,您体重过轻

您的体重在 18.5 到 25 之间是正常的

从 25 岁到 30 岁你超重了

您在 30 到 35 岁之间属于中度肥胖

您从 35 岁到 40 岁严重肥胖

您超过 40 岁,严重肥胖

我好像想不通,我该怎么办?

提前致谢!

为了计算 bmi,您通常使用以米为单位的身高(而不是厘米)。这意味着您需要为公式中从 cm 到 m 的转换调整两次:

bmi = 10000 * weight / (height*height)
print bmi

您可以对文本部分使用 if-elif-...-else 语句:

if bmi < 15:
    message = "very severely underweight"
elif bmi <= 16:
    message = "severely underweight"
# Add more elif parts here...
else:
    message = "very severely obese"

print "You are", message

为什么不将 requestNumber 用于身高和体重,而不是从 cm 转换为 m。此外,打印语句可以像我在下面演示的那样更短。另外,我使用 %s %d %r 这叫做 String Formatting Operations

def inForm():
 name = requestString("Please enter your name")
 age = requestInteger("How old are you?")
 height = requestNumber("How tall are you? (Meters)")
 weight = requestNumber("How heavy are you? (Kilograms)")
 bmi = weight/(height*height)

 print "Hello, %s! I see that you are %r years old, %r meters tall, weight %r kgs and your BMI is %d." % (name, age, height, weight, bmi)

 n = bmi
 if n<15:
  print "You are very severely underweight"
 elif 15<=n<=16:
  print "You are severely underweight"
 elif 16<n<=18.5:
  print "You are underweight"
 elif 18.5<n<=25:
  print "Your weight is normal"
 elif 25<n<=30:
  print "You are overweight"
 elif 30<n<=35:
  print "You are moderately obese"
 elif 35<n<=40:
  print "You are severely obese"
 elif n>40:
  print "You are very severely obese"