Python :: Aufgabe #197

8 Lösungen Lösungen öffentlich

Body-Mass-Index (BMI)

Anfänger - Python von hollst - 20.11.2018 um 18:23 Uhr
Der BMI ist eine (umstrittene) Kenngröße zur Ermittlung des eigenen Über-/Untergewichtszustandes:

BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).

Er wird wie folgt interpretiert:

Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5

Normalgewicht 18,5 – < 25

Präadipositas 25 – < 30

Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40

Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.

Viel Spaß!

Lösungen:

vote_ok
von jigga (4260 Punkte) - 26.11.2018 um 11:26 Uhr
Quellcode ausblenden Python-Code
gewicht = input("Gewicht in kg: ")
groesse = input("Größe in cm: ")

bmi = float(gewicht)/((float(groesse)/100)**2)

if (bmi < 16):
	print("BMI von ", round(bmi,1), "-> Starkes Untergewicht")
elif (bmi >= 16 and bmi < 17):
	print("BMI von ", round(bmi,1), "-> Mäßiges Untergewicht")
elif (bmi >= 17 and bmi < 18.5):
	print("BMI von ", round(bmi,1), "-> Leichtes Untergewicht")
elif (bmi >= 18.5 and bmi < 25):
	print("BMI von ", round(bmi,1), "-> Normalgewicht")
elif (bmi >= 25 and bmi < 30):
	print("BMI von ", round(bmi,1), "-> Präadipositas")
elif (bmi >= 30 and bmi < 35):
	print("BMI von ", round(bmi,1), "-> Adipositas Grad I")
elif (bmi >= 35 and bmi < 40):
	print("BMI von ", round(bmi,1), "-> Adipositas Grad II")
else:
	print("BMI von ", round(bmi,1), "-> Adipositas Grad III")
vote_ok
von Loki (50 Punkte) - 03.12.2018 um 18:58 Uhr
Quellcode ausblenden Python-Code
#Rechner zur Bestimmung des BMI
#Eingabe über eine GUI

from tkinter import*

#----------Funktionen---------

def Berechnung ():
    global Größe
    global Gewicht
    BMI= 0
    Ausgabefeld_1.delete(1.0, END)   
    Eingabe2 = Eingabe_Größe.get()
    Größe = int(Eingabe2)/100
    Eingabe = Eingabe_Gewicht.get()
    Gewicht = int(Eingabe)
    BMI1 = Gewicht /(Größe*Größe)
    BMI1 = round(BMI1, 2)
    BMI = str(BMI1)
    if BMI1 < 16:
        Hinweis = ", stark untergewichtig"
    if BMI1 >= 16 and BMI1 <17:
        Hinweis = ", mäßig untergewichtig"
    if BMI1 >=17 and BMI1 <18.5:
        Hinweis = ", leicht untergewichtig"
    if BMI1 >= 18.5 and BMI1 < 25:
        Hinweis = ", Normalgewicht"
    if BMI1 >= 25 and BMI1 < 30:
        Hinweis =", Präadipositas"
    if BMI1 >= 30 and BMI1 < 35:
        Hinweis = ", Adipositas Grad I"
    if BMI1 >= 35 and BMI1 <40:
        Hinweis = ", Adipositas Grad II"
    if BMI1 >= 40:
        Hinweis = ", Adipositas Grad III"
    Ausgabe = str(BMI + Hinweis)   
    Ausgabefeld_1.insert(END, (BMI + Hinweis))
    
def Ende():
    BMI_Rechner.destroy()

#---------Definition der GUI---------
BMI_Rechner = Tk()
BMI_Rechner.title("BMI Rechner")

Überschrift=Label(BMI_Rechner, text =" Mein BMI", font = "Times 10")
Überschrift.grid(column = "2", row ="1")

Abstandshalter1 = Label(BMI_Rechner, text =" ")
Abstandshalter1.grid(column = "1", row ="2")

#Eingabe Gewicht, Variable = Gewicht
Hinweis_Eingabe1 = Label(BMI_Rechner, text ="Bitte Gewicht eingeben:")
Hinweis_Eingabe1.grid(column = "1", row = "3")
Eingabe_Gewicht = Entry(BMI_Rechner)
Eingabe_Gewicht.insert(0, "0")
Eingabe_Gewicht.grid(column= 1, row=4)
Hinweis_Einheit = Label(BMI_Rechner, text ="Kg").grid(column = 2, row=4, sticky=W)

#Eingabe Größe, Variable = Größe
Hinweis_Eingabe2 = Label(BMI_Rechner, text ="Bitte Größe eingeben:")
Hinweis_Eingabe2.grid(column = "3", row = "3")
Eingabe_Größe = Entry(BMI_Rechner)
Eingabe_Größe.insert(0, "0")
Eingabe_Größe.grid(column= "3", row="4")
Hinweis_Einheit = Label(BMI_Rechner, text ="cm").grid(column = 5, row=4, sticky=W)

Abstandshalter2 = Label(BMI_Rechner, text =" ")
Abstandshalter2.grid(column = "1", row ="5")

#Berechen und Ausgabe des Ergebnisses in der GUI
Berechnen=Button(BMI_Rechner, text="Berechnen", command = Berechnung)
Berechnen.grid(column = "2", row = "6")

Abstandshalter2 = Label(BMI_Rechner, text =" ")
Abstandshalter2.grid(column = "1", row ="7")

Hinweisfeld_1 = Label(BMI_Rechner, text ="Dein BMI ist:", font = "Times 10")
Hinweisfeld_1.grid(column=2, row =8)
Ausgabefeld_1 = Text(BMI_Rechner, height ="1", width ="30")
Ausgabefeld_1.grid(column = 2, row=9)

Ende_Button = Button(BMI_Rechner, text ="ENDE", command = Ende)
Ende_Button.grid(column = 5, row = 11)


BMI_Rechner.mainloop()

vote_ok
von telematiker (140 Punkte) - 06.12.2018 um 14:13 Uhr
Quellcode ausblenden Python-Code
#Programm zur Berechnung des BMI Wertes und Ausgabe des gesundheitlichen Zustandes
#Eingabe
gr=input("Gebe deine Körpergröße in M ein: ")
gw=input("Gebe dein Gewicht in KG ein: ")

#Verarbeitung
def rechnen(gw,gr):
    bmi=round(float(gw)/(float(gr)**2),2)
    status = auswertung(bmi)
    print("Du hast einen BMI von "+ str(bmi)+ " dass nennt man: " + status)

def auswertung(x):
    if x < 16:
        return "Starkes Untergewicht"
    elif x >= 16 and x <=17:
        return "Mäßiges Untergewicht"
    elif x >17 and x < 18.5:
        return "Leichtes Untergewicht"
    elif x <=18.5 and x <=25:
        return "Nandmalgewicht"
    elif x <25 and x <=30:
        return "Präadipositas"
    elif x <30 and x <=35:
        return "Adipositas Grad I"
    elif x >35 and x <=40:
        return "Adipositas Grad II"
    elif x <40:
        return "Adipositas Grad III"
    else:
        return "Level Gott"
#Ausgabe
rechnen(gw,gr)
1 Kommentar
vote_ok
von thenewbie (90 Punkte) - 12.12.2018 um 15:39 Uhr
Quellcode ausblenden Python-Code
#Tipps wie ich die zwei while-Schleifen umgehen kann, also eine n-fache Eingabeaufforderung, mit unterschiedlichen Texten natürlich?
while True:
    print("Bitte geben Sie Ihr Körpergewicht in Kg ein:")
    try:
        gewicht = float(input())
    except:
        print("Ungültige Eingabe!")
        continue
    break

while True:
    print("Geben Sie nun ihre Körpergröße an:" )
    try:
        groesse = float(input())
    except:
        print("Ungültige Eingabe!")
        continue
    break

BMI = gewicht / (groesse**2)


if BMI < 16:
    Ergebnis = "Starkes Untergewicht"
elif BMI >= 16 and BMI < 17:
    Ergebnis = "Mäßiges Untergewicht"
elif BMI >= 17 and BMI <18.5:
    Ergebnis = "Leichtes Untergewicht"
elif BMI >= 25 and BMI < 30:
    Ergebnis = "Präadipositas"
elif BMI >= 30 and BMI < 35:
    Ergebnis = "Adipositas Grad I"
elif BMI >= 35 and BMI < 40:
    Ergebnis = "Adipositas Grad II"
elif BMI > 40:
    Ergebnis = "Adipositas Grad III"
else:
    Ergebnis = "Normalgewicht"
print(Ergebnis,BMI)
vote_ok
von kamikatze (420 Punkte) - 12.12.2018 um 20:35 Uhr
Quellcode ausblenden Python-Code
weight = (int(input("Dein Gewicht: ")))
height = (float(input("Deine roesse in cm: ")))

bmi = weight / ((height / 100)**2)
if bmi < 16:
    bmistatus = "Starkes Untergewicht"
elif (bmi >= 16) and (bmi < 17):
    bmistatus = "Maesiges Untergewicht"
elif (bmi >= 17) and (bmi < 18.5):
    bmistatus = "Leichtes Untergewicht "
elif (bmi >= 18.5) and (bmi < 25):
    bmistatus = "Normalgewicht "
elif (bmi >= 25) and (bmi < 30):
    bmistatus = "Praeadipositas "
elif (bmi >= 30) and (bmi < 35):
    bmistatus = "Adipositas Grad I "
elif (bmi >= 35) and (bmi < 40):
    bmistatus = "Adipositas Grad II "
elif (bmi >= 40):
    bmistatus = "Adipositas Grad III "

print("du hast ", bmistatus)
vote_ok
von SamYoshihara (120 Punkte) - 03.02.2019 um 01:09 Uhr
Quellcode ausblenden Python-Code
while True:
    # Eingabe
    print("Hast du dein Idealgewicht?")
    masse = float(input ("Gewicht in kg: "))
    grösse = float(input ("Grösse in m: "))

    # Verarbeitung
    bmi = masse/grösse**2
    untergrenze = round((21*grösse**2), 1)
    obergrenze = round((23*grösse**2), 1)

    # Ausgabe
    print (" Dein Body-Mass-Index beträgt:", round(bmi, 1))
    if bmi < 15:
        print(" Du bist beinahe verhungert.")
    elif bmi <= 18.5:
        print(" Du hast Untergewicht.")
    elif bmi <= 21:
        print(" Du bist mager.")
    elif bmi <= 23:
        print(" Du hast Idealgewicht.")
    elif bmi <= 25:
        print(" Du hast Normalgewicht.")
    elif bmi <= 30:
        print(" Du hast Übergewicht.")
    elif bmi <= 35:
        print(" Fettling, denk doch an all die hungernden Menschen! (Adipositas I)")
    elif bmi <= 40:
        print(" Du fette Sau, weisst du wieviel Ackerfläche du verbrauchst? (Adipositas II)")
    elif bmi <= 45:
        print(" BRAVO! Bald hast du es ins Guinness Book der Rekorde geschafft. (Adipositas III)")
    else: print(" Du bist völlig überfressen, d.h. du hast Adipositas III+")
    print (" Dein Idealgewicht ist zwischen", untergrenze, "und", obergrenze, "kg.")
    print ()
vote_ok
von Chrisu90 (910 Punkte) - 01.11.2020 um 12:37 Uhr
Quellcode ausblenden Python-Code
print('#### BMI Rechner ####')

# Definierte Ausgaben
ug1 = 'Starkes Untergewicht'
ug2 = 'Maessiges Untergewicht'
ug3 = 'Leichtes Untergewicht'
normal = 'Normalgewicht'
adi1 = 'Prädipositas'
adi2 = 'Adipositas Grad 1'
adi3 = 'Adipositas Grad 2'
adi4 = 'Adipositas Grad 3'

#BMI Berechnung
daten1 = float(input('Wie hoch ist Ihr Koerpergewicht: '))
daten2 = float(input('Wie gross sind Sie: '))
gesamtdaten = daten1 / (daten2/100)**2
print('\nIhr BMI ist:', "{0:.2f}".format(gesamtdaten))

#Ausabebloecke
if gesamtdaten < 16:
    print('Sie sind im Bereich:', ug1)
elif gesamtdaten < 17:
    print('Sie sind im Bereich:', ug2)
elif gesamtdaten < 18.5:
    print('Sie sind im Bereich:', ug3)
elif gesamtdaten < 25:
    print('Sie sind im Bereich:', normal)
elif gesamtdaten < 30:
    print('Sie sind im Bereich:', adi1)
elif gesamtdaten < 35:
    print('Sie sind im Bereich:', adi2)
elif gesamtdaten == 40:
    print('Sie sind im Bereich:', adi3)
vote_ok
von boerscho (20 Punkte) - 04.06.2021 um 11:52 Uhr
Quellcode ausblenden Python-Code
# BMI-Rechner
kg = int(input("Gib dein Gewicht (in kg) ein: "))
groeße = int(input("Gib deine Größe (in cm) an: "))

bmi = round((kg / groeße**2) * 10000, 2)

if bmi < 16:
    print("Sie haben starkes Untergewicht!")
elif bmi <= 16 and bmi < 17:
    print("Sie haben mäßiges Untergewicht!")
elif bmi <= 17 and bmi < 18.5:
    print("Sie haben leichtes Untergewicht!")
elif bmi <= 18.5 and bmi < 25:
    print("Sie haben Normalgewicht!")
elif bmi <= 25 and bmi < 30:
    print("Sie haben Präadipositas!")
elif bmi <= 30 and bmi < 35:
    print("Sie haben Adipositas Grad I!")
elif bmi <= 35 and bmi < 40:
    print("Sie haben Adipositas Grad II!")
elif bmi > 40:
    print("Sie haben Adipositas Grad III!")