2016-03-27 17 views
-2

So here unter meinem Code:Wie füge ich die BMI-Berechnung zum folgenden Code hinzu?

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" 

ich die BMI-Berechnung zu diesem Code hinzufügen müssen, das ist meine Formel, BMI = Gewicht/(Höhe * Höhe)

Mit diesen Meldungen angezeigt, je nach BMI:

Sie sind sehr stark untergewichtig weniger als 15

Ihre 15,0-16,0 stark untergewichtig sind

Sie sind untergewichtig 16,0-18,5

Ihr Gewicht ist normal 18,5-25

Sie übergewichtig sind 25 bis 30

Sie von 30 mäßig übergewichtig sind bis 35

Sie stark sind fettleibig 35-40

Sie sind sehr stark übergewichtig über 40

ich nicht zu Figur scheinen es raus, wie würde ich dadurch gehen?

Vielen Dank im Voraus!

Antwort

0

Anstatt von cm in m zu konvertieren, verwenden Sie requestNumber für die Höhe und das Gewicht. Außerdem könnte die Druckanweisung kürzer sein, wie ich unten gezeigt habe. Außerdem verwende ich% s% d% r dies wird String Formatting Operations genannt.

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

Für die Berechnung der BMI verwenden Sie normalerweise die Höhe in Metern (anstelle von cm). Dies bedeutet, dass Sie zweimal für die Umwandlung von cm bis m in Ihrer Formel anpassen müssen:

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

Sie können eine if-elif -...- else-Anweisung für den Textteil:

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

Gibt es einen bestimmten Grund, warum Sie nicht verwenden 'Höhe ** 2' –

+0

ich die Formel aus dem OP verwendet, aber Sie sind ganz rechts:' Höhe * height' durch 'Höhe ersetzt werden kann ** 2'. –