Python :: Aufgabe #278

2 Lösungen Lösungen öffentlich

WHtR (Waist to Height Ratio) berechnen

Anfänger - Python von JKooP - 10.05.2020 um 09:17 Uhr
Schreibe ein Programm zur Ermittlung des WHtR- Wertes aus Taillenumfang + Körpergröße und der daraus resultierenden Bewertung.

Es sollen sowohl das Geschlecht (m/w) als auch das Kindesalter bzw. der Altersfaktor für Erwachsene berücksichtigt werden.

Viel Spaß

Lösungen:

vote_ok
von daVinci (320 Punkte) - 22.05.2020 um 13:24 Uhr
Quellcode ausblenden Python-Code
###########################################################################################
# Aufgabe #278 - WHtR (Waist to Height Ratio) berechnen
###########################################################################################
#     ___________________________________
#____|  A u f g a b e n s t e l l u n g  |_________________________________________________
#
#     - Schreibe ein Programm zur Ermittlung des WHtR- Wertes aus 
#       Taillenumfang + Körpergröße und der daraus resultierenden Bewertung.
#
#     - Es sollen sowohl das Geschlecht (m/w) 
#       als auch das Kindesalter bzw. der Altersfaktor für Erwachsene 
#       berücksichtigt werden.
#     _____________________________
#____|  I n f o r m a t i o n e n  |_______________________________________________________
#
#       AUSWERTUNG:____________________________________
#       Alter               Idealer Wert 	        Übergewicht
#       unter 40 Jahre 	    maximal 0,5 	        0,5 und höher
#       40 - 50 Jahre       0,5 bis 0,6 	        0,6 und höher
#       über 50 Jahre       maximal 0,6 	        0,6 und höher
#
#       Klassifikation      Kinder (bis 15 Jahre)   Frau            Mann
#       Extrem dünn         bis zu 0,34             bis zu 0,34     bis zu 0,34
#       Dünn                0,35 bis 0,45           0,35 bis 0,41   0,35 bis 0,42
#       Gesund              0,46 bis 0,51           0,42 bis 0,48   0,43 bis 0,52
#       Übergewichtig       0,52 bis 0,63           0,49 bis 0,53   0,53 bis 0,57
#       Stark               ab 0,64                 0,54 bis 0,57   0,58 bis 0,62
#       Übergewichtig       
#
#       Die Formel lautet: WHtR = Taillenumfang (in cm) : Körpergröße (in cm)
#
#       ***Generell gilt ein Wert von 0,5 und größer als gesundheitskritisch für Menschen 
#          unter 40 Jahren. Für Menschen zwischen 40 und 50 Jahren wird der kritische Wert 
#          zwischen 0,5 und 0,6 angegeben. Bei den über 60 Jährigen sind Wert ab 0,6 als 
#          kritisch für die Gesundheit anzusehen.
#
###########################################################################################
#=========================================================================| code by daVinci
###########################################################################################
# Importe
import os, sys
#------------------------------------------------------------------------------------------
# Funktion zur Berechnung des WHtR
def berechnung (groesse, tumfang, alter, gender):
    whtr = tumfang / groesse
    return (whtr)
#------------------------------------------------------------------------------------------
# Funktion zur Auswertung des Statuses
def ergebnisstatus (alter, gender, ergebnis):
    if alter <= 15:
        if ergebnis <= 0.34:
            return ("Extrem Dünn")
        elif (ergebnis >= 0.35 or ergebnis <= 0.45):
            return ("Dünn")
        elif (ergebnis >= 0.46 or ergebnis <= 0.51):
            return ("Idealwert")
        elif (ergebnis >= 0.52 or ergebnis <= 0.63):
            return ("Übergewichtig")
        elif ergebnis >= 0.46:
            return ("Stark Übergewichtig")
    elif (gender == "w" and alter > 15):
        if ergebnis <= 0.34:
            return ("Extrem Dünn")
        elif (ergebnis >= 0.35 or ergebnis <= 0.41):
            return ("Dünn")
        elif (ergebnis >= 0.42 or ergebnis <= 0.48):
            return ("Idealwert")
        elif (ergebnis >= 0.49 or ergebnis <= 0.53):
            return ("Übergewichtig")
        elif ergebnis >= 0.54:
            return ("Stark Übergewichtig")
    elif (gender == "m" and alter > 15):
        if ergebnis <= 0.34:
            return ("Extrem Dünn")
        elif (ergebnis >= 0.35 or ergebnis <= 0.42):
            return ("Dünn")
        elif (ergebnis >= 0.43 or ergebnis <= 0.52):
            return ("Idealwert")
        elif (ergebnis >= 0.53 or ergebnis <= 0.57):
            return ("Übergewichtig")
        elif ergebnis >= 0.58:
            return ("Stark Übergewichtig")
#------------------------------------------------------------------------------------------
# Bildschirminhalt leeren
try:
    os.system("cls")
except:
    os.system("clear") 
#------------------------------------------------------------------------------------------
# START- und Infomeldung
print("================================================================================")
print("               WHtR (Waist to Height Ratio)  -  RECHNER")
print("================================================================================\n")
print("Das Körpergewicht richtig beurteilen: WHtR-Rechner\n\
Die Waist-to-Height Ratio (WHtR)\n\
vergleicht den Bauchumfang (Waist) mit der Körpergrösse (Height).\n\
Erwiesenermassen beeinflusst das Fett in der Bauchregion\n\
die Gesundheit massgeblich. Deshalb ist der WHtR-Rechner verlässlicher\n\
in der Aussage als der bekannte BMI (Body Mass Index).\n\
Dieser bezieht sich auf den Fettgehalt im ganzen Körper und kümmert\n\
sich nicht um die Problemzone Bauch.\n")
print("================================================================================")
print("So einfach funktionierts:")
print("================================================================================")
print("Messen Sie Ihren Bauchumfang.\n\
Messen Sie Ihre aktuelle Körpergrösse.\n\
Tragen Sie die beiden Masse in die nachstehenden Eingabeaufforderungen ein\n\
und ergänzen Sie diese mit Ihrer Altersangabe und Ihrem Geschlecht.\n\
Im Ergebnis wird Ihr WHtR-Wert angezeigt\n\
inkl. der Interpretation Ihrer Resultate.\n")
print("================================================================================")
print("Bitte beachten Sie:")
print("================================================================================")
print("Es genügt völlig, wenn Sie Ihre WHtR maximal einmal pro Woche\n\
oder monatlich berechnen.\n\
So können Sie effektive Veränderungen feststellen.\n\
Messen Sie Ihren Bauchumfang am Morgen vor dem Frühstück.\n\
Messen Sie ihn im Stehen um den nackten Bauch auf Bauchnabelhöhe.\n\
Entspannen Sie die Bauchmuskeln und lassen Sie die Luft\n\
aus der Lunge strömen.\n\
Das Alter spielt auch bei der WHtR eine Rolle.\n\
Mit zunehmendem Alter verändern sich die Statur des Körpers.\n\
Die WHtR berücksichtigt diesen Faktor.\n")
print("================================================================================")
print("Disclaimer:")
print("================================================================================")
print("Gerne weisen wir Sie darauf hin, dass Sie den WHtR-Rechners aus\n\
persönlichem Interesse nutzen.\n\
Die Berechnung der Waist to Height Ratio stellt nach aktuellem\n\
Stand der Forschung eine wertvolle Verfeinerung der bisherigen\n\
Messmethoden dar und liefert ein präziseres Ergebnis, da nur das\n\
schädliche Bauchfett mitberechnet wird. Die WHtR ist ein aussagekräftiger\n\
Wert und dient als Richtlinie, ersetzt aber nie eine fachkundige\n\
Beratung eines Arztes oder einer Ernährungsberaterin.\n")
# Eingabeaufforderung um fortzufahren...
print("_______________________________________________")
input("DRÜCKE EINE BLIEBIGE TASTE UM FORTZUFAHREN...")
#------------------------------------------------------------------------------------------
# Bildschirminhalt leeren
try:
    os.system("cls")
except:
    os.system("clear") 
#------------------------------------------------------------------------------------------
# Schleife Benutzereingaben
while True:
    # Variablen
    groesse = 0
    tumfang = 0
    alter = 0
    gender = "-"
    # Bildschirminhalt leeren
    try:
        os.system("cls")
    except:
        os.system("clear") 
    # Benutzereingaben
    print("================================================================================")
    print("               WHtR (Waist to Height Ratio)  -  RECHNER")
    print("================================================================================\n")
    print("IHRE ANGABEN:\n")
    print("KÖRPERGRÖSSE (in cm)     = %d cm" %(groesse))
    print("TAILENUMFANG (in cm)     = %d cm" %(tumfang))
    print("IHR ALTER    (in Jahren) = %d Jahre\n" %(alter))
    print("GESCHLECHT   (m/w)       = %s\n" %(gender))
    print("________________________________________________________________________________")
    # Eingabe Körpergroße mit Fehlerüberprüfung
    try:
        groesse = eval(input("Geben Sie Ihre Körpergrösse (in cm) ein: "))
        tumfang = eval(input("Geben Sie jetzt Ihren Tailenumfang (in cm) ein: "))
        alter = eval(input("Und jetzt bitte noch Ihr Alter: "))
        gender = input("Und zu guter letzt noch Ihr Geschlecht (m/w): ")
    # Bei Eingabe != Zahl
    except NameError:
        print("================================================================================")
        input("Sie haben keine Zahl eingegeben! Bitte wiederholen Sie Ihre Eingaben...\n")
        continue
    # Bildschirminhalt leeren
    try:
        os.system("cls")
    except:
        os.system("clear") 
    # Abfrage ob Eingaben richtig sind 
    print("================================================================================")
    print("               WHtR (Waist to Height Ratio)  -  RECHNER")
    print("================================================================================\n")
    print("IHRE ANGABEN:\n")
    print("KÖRPERGRÖSSE (in cm)     = %d cm" %(groesse))
    print("TAILENUMFANG (in cm)     = %d cm" %(tumfang))
    print("IHR ALTER    (in Jahren) = %d Jahre\n" %(alter))
    print("GESCHLECHT   (m/w)       = %s\n" %(gender))
    print("________________________________________________________________________________")
    korrekt = input("Sind die Angaben korrekt? [J]a / [N]ein: ")

    if not (korrekt == "J" or korrekt == "j"):
        continue
    # Bildschirminhalt leeren
    try:
        os.system("cls")
    except:
        os.system("clear") 
    break
#------------------------------------------------------------------------------------------
# Auswertung (Berechnung)
ergebnis = berechnung(groesse, tumfang, alter, gender)
status = ergebnisstatus(alter, gender, ergebnis)
#------------------------------------------------------------------------------------------
# Ausgabe der Ergebnisse
print("================================================================================")
print("               WHtR (Waist to Height Ratio)  -  RECHNER")
print("================================================================================\n")
print("AUSWERTUNG:")
print("___________Ihr WHtR-Wert: %.2f" %(ergebnis))
print("___________Das Ergebnis:  %s" %(status))
print("\n*Generell gilt ein Wert von 0.5 und größer als gesundheitskritisch für Menschen\n\
unter 40 Jahren. Für Menschen zwischen 40 und 50 Jahren wird der kritische Wert\n\
zwischen 0.5 und 0.6 angegeben. Bei den über 60 Jährigen sind Wert ab 0.6 als\n\
kritisch für die Gesundheit anzusehen.")
print("\n_________________________________________________________")
input("DRÜCKE EINE BLIEBIGE TASTE UM DAS PROGRAMM ZU BEENDEN...")

###########################################################################################
###################################################################################### ENDE
vote_ok
von Nachbar (2810 Punkte) - 25.05.2020 um 23:59 Uhr
Quellcode ausblenden Python-Code
t = input("Bitte den Taillenumfang in cm eingeben: ")
g = input("Bitte die Körpergröße in cm eingeben: ")
a = int(input("Bitte das Alter eingeben: "))
if a > 15:
    s = input("Bitte das Geschlecht (m oder w) eingeben: ")
WHtR = int(t) / int(g)
dic = {"su":"Fazit: Starkes Untergewicht", "u":"Fazit: Untergewicht", \
       "n":"Fazit: Normalgewicht", "ue":"Fazit: Übergewicht", "a":"Fazit: Adipositas", \
       "ea":"Fazit: Extreme Adipositas"}

if WHtR <= 0.34:
    print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["su"])
elif a <= 15:
    if WHtR > 0.34 and WHtR <= 0.45:
        print("\nDein WHtR beträgt " + str(WHtR) + ". " + dic["u"])
    elif WHtR > 0.46 and WHtR <= 0.51:
        print("\nDein WHtR beträgt " + str(WHtR) + ". " + dic["n"])
    elif WHtR > 0.52 and WHtR <= 0.63:
        print("\nDein WHtR beträgt " + str(WHtR) + ". " + dic["ue"])
    elif WHtR >= 0.63:
        print("\nDein WHtR beträgt " + str(WHtR) + ". " + dic["ea"])    
elif (a > 15) and (s == "w"):
    if WHtR > 0.35 and WHtR <= 0.41:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["u"])
    elif WHtR > 0.42 and WHtR <= 0.48:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["n"])
    elif WHtR > 0.49 and WHtR <= 0.53:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["ue"])
    elif WHtR > 0.54 and WHtR <= 0.57:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["a"])    
    elif WHtR >= 0.58:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["ea"])    
elif (a > 15) and (s == "m"):
    if WHtR > 0.35 and WHtR <= 0.42:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["u"])
    elif WHtR > 0.43 and WHtR <= 0.52:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["n"])
    elif WHtR > 0.53 and WHtR <= 0.57:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["ue"])
    elif WHtR > 0.58 and WHtR <= 0.62:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["a"])    
    elif WHtR >= 0.63:
        print("\nIhr WHtR beträgt " + str(WHtR) + ". " + dic["ea"])