心拍数トレーニングゾーンを計算するプログラムをPythonで作成しようとしています(興味のある人にはKarvonenの式を使用してください:-))。
式は男性と女性で異なりますが、どちらも年齢 (ハンノキ)、安静時心拍数 (hvilepuls)、最大心拍数 (makspuls) が必要です。
このコードは、個人が Enter キーを押すだけで最大心拍数を計算します。
年齢と休息中の心臓の空白の入力、および 3 つの変数すべてに入力されたゼロ以下の値をキャッチしたかったのです。
空白の入力をキャッチすることはできましたが、ゼロ以下の入力と組み合わせることができないようです。
私が書いたコードは以下のとおりで、機能しますが、ゼロ以下の数字の入力を止めることはできません。
コードのクリーンアップと、これを書くためのより良い(おそらくもっとpythonic?)方法についての他の一般的なコメントは大歓迎です。
# Karvonens formel
#
print(
"""
Kalkulere dine treningssoner for lett løping, anaerob terskel (AT) og VO2 Max treningsøkter.
Instruksjoner
1. Fyll inn din alder, hvilepuls og kjønn.
2. Skriv inn din maksimale hjertefrekvens, hvis du vet det, ellers trykk enter - deretter beregnet programmet det selv som følger:
(Menn 214 - (0,8 * alder) Kvinner:. 209 - (0,7 * alder).
3. Treningssonenes verdier beregnes ved hjelp av Karvonen formelen:
X% = (Maksimal hjertefrekvens hvilepuls) * x/100) + hvilepuls
"""
)
kjonn=""
alder=""
hvilepuls=""
makpuls=""
while kjonn.lower() != "m" and kjonn.lower() != "d":
kjonn = input("Hvilken kjønn er du? (M)ann/(D)ame\t")
while alder=="":
alder = int(input("Hvor mange år er du?\t"))
while hvilepuls=="":
hvilepuls = int(input("Hva er din hvilepuls?\t"))
makspuls = input("Hva er din makspuls?\t")
if makspuls=="":
if kjonn.lower()=="m":
makspuls = int(214 - 0.8*int(alder))
elif kjonn.lower() =="d":
makspuls = int(209 - 0.7*int(alder))
else:
print("\n\nEnter M or D")
else:
makspuls=int(makspuls)
prosent60 = (makspuls-hvilepuls)*0.6 + hvilepuls
prosent75 = (makspuls-hvilepuls)*0.75 + hvilepuls
prosent85 = (makspuls-hvilepuls)*0.85 + hvilepuls
prosent90 = (makspuls-hvilepuls)*0.9 + hvilepuls
# Remove decimals
prosent60 = int(prosent60)
prosent75 = int(prosent75)
prosent85 = int(prosent85)
prosent90 = int(prosent90)
print("\n\n")
if kjonn.lower()=="m":
print("Din kjønn er:\t\tMann")
else:
print("Din kjønn er:\t\tDame")
print("Din alder er:\t\t", alder)
print("Din hvilepuls er:\t", hvilepuls," slag/min")
print("Din makspuls er:\t", makspuls," slag/min")
print("\n\n")
print("Din lavsone er:\t",prosent60,"-",prosent75," slag/min")
print("Din ATsone er:\t",prosent85,"-",prosent90," slag/min")
print("Din VO2max er:\t",prosent90,"-",makspuls," slag/min")
input("\n\nTrykk enter for å avslutte")