我正在尝试在 python 中编写一个程序来计算心率训练区(对任何感兴趣的人使用 Karvonen 的公式 :-))。
男性和女性的公式不同,但都需要年龄 (alder)、静息心率 (hvilepuls) 和最大心率 (makspuls)。
如果个人只是按 Enter,则代码会计算最大心率。
我想捕捉年龄和静息心脏的空白输入,以及为所有三个零或小于零的变量输入的值。
我已经能够捕捉到空白输入,但我似乎也无法将它与零或更少的输入结合起来。
我写的代码在下面并且可以工作,但不会阻止人们输入等于或小于零的数字。
任何其他关于清理代码的一般性评论和更好的(也许是更多的 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")