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

Python燃脂心率计算代码问题:首次输入未被读取原因排查

问题原因分析及解决办法

结合你描述的现象,大概率是代码里的输入读取或逻辑判断出了问题,常见的几种情况如下:

1. get_age()函数里重复读取输入

比如函数里先调用了一次input()但没保存结果,紧接着又要求输入,第一次输入的合法年龄直接被丢弃:

def get_age():
    input("输入年龄:")  # 这行的输入没被使用
    age = int(input("输入年龄:"))
    # 后续判断逻辑

这种情况下,第一次输入的45就被忽略,程序会等着第二次输入。

2. 合法年龄分支里错误触发二次输入

如果判断年龄合法后,又多写了一次输入请求,也会导致首次输入无效:

def get_age():
    age = int(input("输入年龄:"))
    if 18 <= age <=75:
        age = int(input("输入年龄:"))  # 这里无意义的二次输入
        return age
    else:
        print("年龄非法")
        exit()

此时输入合法年龄会被要求再输一遍,非法年龄直接触发退出,完全符合你说的现象。

3. 主程序里重复调用get_age()却未使用返回值

比如主逻辑里先调用了一次get_age()但没把结果存起来,之后又调用一次:

get_age()  # 第一次输入的年龄被浪费
age = get_age()
fat_burning_heart_rate(age)

这也会导致首次输入被忽略,需要重新输入。


修正后的示例代码

给你一个正常工作的版本参考:

def get_age():
    while True:
        try:
            age = int(input("请输入年龄(18-75):"))
            if 18 <= age <=75:
                return age
            print("年龄必须在18-75之间,请重新输入")
        except ValueError:
            print("请输入有效的数字,不要输入字母或符号")

def fat_burning_heart_rate(age):
    max_rate = 220 - age
    return max_rate * 0.7

if __name__ == "__main__":
    user_age = get_age()
    print(f"你的燃脂心率参考值:{fat_burning_heart_rate(user_age):.1f}")

内容的提问来源于stack exchange,提问作者avgccdude

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:35:35