【发布时间】:2021-09-03 11:11:44
【问题描述】:
下面是我根据输入计算卡路里的代码,在打印语句之后我想退出代码并无限循环,直到用户输入正确的值。
import sys
def main():
while True:
try:
print("Please enter Age,Weight,Heart Rate and Workout Time ")
Age,Weight,HR,Time = map(eval,input().split(' '))
men = ( (Age * 0.2017) - (Weight * 0.09036) + (HR * 0.6309) - 55.0969 ) * Time / 4.184
women = ( (Age * 0.074) - (Weight * 0.05741) + (HR * 0.4472) - 20.4022 ) * Time / 4.184
print("Men:",men," Calories \nWomen:",women,"Calories \n")
exit()
except:
print("Please enter numbers only \n \n")
if __name__ == '__main__':
main()
即使输入值正确且不退出代码,代码也会转到除非,我错过了什么?
【问题讨论】:
-
你不需要退出,你需要从循环中
break。 -
不要
map(eval, ...)改为map(float, input().split(' ')) -
建议:应该进入
try块的唯一代码是可以引发异常的代码。其他所有内容都应在try之外。 -
欢迎来到 SO,Swayam。感谢您提供工作(最小)代码并描述了问题所在!
标签: python try-except