Body-Mass-Index mitsamt Geschlecht in Python
Will ich meinen BMI wissen, dann gibt es allerlei Websites da draußen. Mein Gewicht gebe ich ein, mein Alter, die Körperlänge und schon kommt da der Wert raus. Aber was ist mit der Berücksichtigung Mann oder Frau, das spielt dort keine Rolle. Sollte es aber. Darum hier die nachfolgende kleine Fingerübung, gemacht in Python auf der Mac Kommandozeile.
Aber vorweg und zum Spaßhaben die hier einebette Variante aus HTML mit eingebettetem CSS und JavaScript. Danach kommt der Python Code für command line.
Yogavus BMI- & Körperfettrechner
Der Body-Mass-Index wird berechnet als:
BMI, BFP, was?
Für das kleine Python-Programm dient ein Denkmuster, ein Formel, wie sie zurückgeht auf die Herren Paul Deurenberg, Jan. A. Weststrate und Jaap C. Seidell. Da gab es 1991 eine wissenschaftliche Studie mit Titel "Body mass index as a measure of body fatness: age- and sex-specific prediction formulas“ veröffentlich im British Journal of Nutrition, Band 65, Seiten 105–114.
Die Formel basiert auf Messungen an über 1200 Personen (Densitometrie zur Bestimmung der Körperzusammensetzung) und ist eine der am häufigsten zitierten Schätzformeln, um den Körperfettanteil aus BMI, Alter und Geschlecht abzuleiten. Sie gilt speziell für Erwachsene und ist eine praktische Erweiterung des reinen BMI, welcher seinerseits Geschlecht und Alter ignoriert.
Nun aber der Code, danach folgt die innewohnende mathematische Formel mit Erläuterung.
# Yogavus BMI
alter = int(input("Alter (ganze Zahl): "))
geschlecht = input("Geschlecht (M/F): ").upper()
if geschlecht == "M":
s = 1
elif geschlecht == "F":
s = 0
else:
print("Bitte nur M oder F eingeben.")
exit()
groesse = int(input("Größe in cm (ganze Zahl): "))
gewicht = int(input("Gewicht in kg (ganze Zahl): "))
bmi = gewicht / ((groesse / 100) ** 2)
bfp = 1.2 * bmi + 0.23 * alter - 10.8 * s - 5.4
print()
print("Dein BMI:", round(bmi, 2))
print("Geschätzter Körperfettanteil (BFP):", round(bfp, 2), "%")
print()
print("Ergebnis:")
print("BMI:", round(bmi, 2))
print("BFP:", round(bfp, 2), "%")Die Mathematik dahinter
Variable | Bedeutung | Einheit | Hinweise |
|---|---|---|---|
BFP | Körperfettanteil | % | Ergebnis in Prozent |
BMI | Body-Mass-Index | kg/m² | Zwischenschritt |
W | Gewicht | kg | Ganze Zahl |
H | Größe | cm | Ganze Zahl |
A | Alter | Jahre | Ganze Zahl |
S | Geschlecht | – | 1 = männlich, 0 = weiblich |