大于在python中怎么打出来_在python中,如何检查输入不是空的并且是大于零的数字...

这是我的建议。在应立即验证并清理输入。通常在接受输入时,最好调用.strip()方法,以防用户错误地输入了额外的空格或制表符。在您读取'm'或'd'值之后,强制将其小写;然后代码的其余部分可以假定它是小写的。

当您想对照多个可能的合法值检查一个值时,一个好的Python习惯用法是使用in (value0, value1, value2, ..., valueN)。在本例中,您可以检查in ('m', 'd'),但因为我们检查的是单个字符,所以实际上我们可以只检查in "md",这也可以。

当您希望允许空字符串或整数时,只需将响应读入临时变量(我使用名称s表示“string temporary variable”),然后可以检查零长度字符串;如果它不是零长度,则转换为整数。您可以将整型变量初始化为负值,然后循环直到它不是负值;但是我更喜欢使用while True:循环并添加一个显式的break来显示发生的成功条件。(注意:如果这是家庭作业,您的老师可能不同意我的观点;有些老师不喜欢看到break在一个循环中,而是宁愿只在顶部测试循环。)

我添加了一些错误消息。我在我的文本周围加上“@@@@@”,以确保你能找到所有的文本并将其本地化为您的语言。(这是一个很短的程序,你很可能已经找到了所有的东西,但我想让你尽可能简单。)

我没有对浮点数调用int()将它们转换为整数,而是使用了round(),这样77.9将变成78而不是77。

编辑:我刚刚编辑了代码。我将输入验证分解为一个函数,并传入一个“validator”函数。我觉得这样比较干净。在

代码:# Karvonens formel

#

print(

"""

Kalkulere dine treningssoner for lett lping, anaerob terskel (AT) og VO2 Max treningskter.

Instruksjoner

1. Fyll inn din alder, hvilepuls og kjnn.

2. Skriv inn din maksimale hjertefrekvens, hvis du vet det, ellers trykk enter - deretter beregnet programmet det selv som flger:

(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=0

hvilepuls=0

makpuls=' '

def check_positive(n):

if n > 0:

return True

else:

print("@@@@@ Cannot enter a negative or 0 value! @@@@@")

return False

def check_positive_or_zero(n):

if n >= 0:

return True

else:

print("@@@@@ Cannot enter a negative value! @@@@@")

return False

def get_input_int(s_mesg, fn_validate, default=None):

while True:

s = input(s_mesg).strip()

if not s and default is not None:

return default

# not a default value; try it as an int

try:

n = int(s)

except ValueError:

print("@@@@@ Not even an integer! @@@@@")

continue

# works as an int; is it valid?

if fn_validate(n):

return n

while kjonn not in ('m', 'd'):

kjonn = input("Hvilken kjnn er du? (M)ann/(D)ame\t").strip().lower()

alder = get_input_int("Hvor mange r er du?\t", check_positive)

hvilepuls = get_input_int("Hva er din hvilepuls?\t", check_positive)

makspuls = get_input_int("Hva er din makspuls?\t", check_positive_or_zero, default=0)

if not makspuls:

if kjonn == 'm':

makspuls = int(214 - 0.8*int(alder))

else:

makspuls = int(209 - 0.7*int(alder))

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 = round(prosent60)

prosent75 = round(prosent75)

prosent85 = round(prosent85)

prosent90 = round(prosent90)

print("\n\n")

if kjonn == 'm':

print("Din kjnn er:\t\tMann")

else:

print("Din kjnn 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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值