2016-03-27 2 views
-2

Так Heres мой код ниже:Как добавить расчет ИМТ в следующий код?

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" 

мне нужно добавить расчет ИМТ для этого кода, это моя формула, ИМТ = вес/(высота * высота)

С помощью этих сообщений отображаются в зависимости от ИМТ:

Вы очень сильно истощены менее 15

Ваш являются сильно истощены от 15,0 до 16,0

Вы пониженные от 16,0 до 18,5

Вашего веса в норме от 18,5 до 25

Вы лишний вес от 25 до 30

Вы умеренно ожирения от 30 до 35

Вы серьезно тучный от 35 до 40

Вы очень сильно страдает ожирением более 40

Я не могу понять это, как я пойду этим?

Спасибо заранее!

ответ

0

Вместо преобразования из cm в m, почему бы вам не использовать requestNumber для высоты и веса. Кроме того, заявление печати может быть короче, как показано ниже. Кроме того, я использую% 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" 
0

Для расчета bmi вы обычно используете высоту в метрах (вместо см). Это означает, что вам нужно настроить дважды для перехода от см до м в формуле:

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

Вы можете использовать если-Элиф -...- другое заявление для текстовой части:

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 
+0

Есть ли конкретная причина, почему вы не используете 'высоты ** 2' –

+0

Я использовал формулу от OP, но вы совершенно правы:' высота * height' может быть заменен на 'высоте ** 2'. –

Смежные вопросы