You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:31:36