如何将 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"
下面是我的代码:
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"