Python循环异常终止求助:接收calories_burned后程序退出
解决Python输入循环的缩进问题
嘿,作为编程新手遇到这种缩进相关的问题太正常啦!我来帮你捋一捋~
从你描述的情况来看,程序在接收calories_burned后就终止,大概率是第二个循环的缩进没写对,导致循环只执行了一次就跳出,或者后续代码不在循环的有效范围内。
先给你一个符合需求的完整示例代码,你可以对比自己的代码找缩进问题:
def start(): print("""This is a Weight Calculator, please follow the instructions.""") name = input("What is your name? ") # 第一个循环:验证年龄输入,避免非数字导致崩溃 while True: try: age = int(input("What is your age? ")) break # 输入正确就跳出循环 except ValueError: print("请输入有效的数字哦!") # 第二个循环:验证卡路里输入,逻辑和年龄一致 while True: try: calories_burned = float(input("How many calories did you burn? ")) break # 输入正确才往下走 except ValueError: print("请输入有效的数字(支持小数)哦!") # 这里可以加后续的体重计算逻辑 print(f"Hi {name}, you're {age} years old and burned {calories_burned} calories!") start()
常见的缩进错误坑:
- 如果你把
break或者后续代码缩进错了(比如放到try块外面、循环外面),会导致循环提前终止,甚至直接跳过验证逻辑。 - 要是第二个循环的
try-except块没有整体缩进在while下面,循环就不会重复执行,用户输入错误时程序直接报错终止。 - 忘记加
break的话,输入正确后循环会一直跑,不会进入后续流程。
你可以重点检查自己的代码:是不是第二个循环的所有输入、异常处理代码都缩进在了while语句的范围内?有没有在输入正确后用break跳出循环?
内容的提问来源于stack exchange,提问作者Kaloian Kozlev
相关产品推荐
相关产品推荐

