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

Jython 如何将BMI计算添加到以下代码中?,jython,jes,Jython,Jes,下面是我的代码: 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",

下面是我的代码:

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=体重/(身高*身高)

根据BMI显示以下消息:

你体重严重不足15磅

你的体重严重不足,从15.0到16.0

你的体重从16.0减到18.5

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

你从25岁到30岁超重

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

你在35岁到40岁之间严重肥胖

40岁以上的你非常肥胖

我似乎不明白,我该怎么办


提前谢谢

计算体重指数时,通常使用身高单位米(而不是厘米)。这意味着您需要对公式中从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
如果体重指数<15:
message=“体重严重不足”

如果bmi不是从cm转换为m,为什么不使用requestNumber表示身高和体重。此外,打印语句可以更短,如我在下面演示的那样。此外,我使用%s%d%r,这称为

def通知():
name=requestString(“请输入您的姓名”)
年龄=requestInteger(“你多大了?”)
高度=requestNumber(“你有多高?(米)”)
重量=请求数量(“你有多重?(千克)”)
体重指数=体重/(身高*身高)
打印“您好,%s!我看到您已%r岁,%r米高,体重%r千克,您的BMI为%d.”%(姓名、年龄、身高、体重、BMI)
n=体重指数

如果你不使用
height**2
的具体原因是什么,我使用了OP中的公式,但你完全正确:
height*height
可以替换为
height**2
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"