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
相关产品推荐
相关产品推荐

