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

Python中出现ValueError: invalid literal for int() with base 10: '1.66'问题求助

女性每日卡路里计算代码错误修复

错误原因

报错ValueError: invalid literal for int() with base 10: '1.66'是因为获取身高时用int()转换输入,但输入了带小数的数值(比如1.66),int()无法解析包含小数点的字符串,导致转换失败。

修复步骤及优化点

  • 修复身高转换问题:将height = int(input(...))改为height = float(input(...)),允许输入带小数的身高值(比如166.5cm或1.66m,根据实际单位调整逻辑即可)。
  • 修复年龄类型问题:age变量仅用input()接收会保留字符串类型,后续计算时会报错,需转换为数字类型,比如age = int(input(...))。
  • 处理输入空格问题:用户输入活动等级时可能带前后空格,导致判断不匹配,需用strip()去除空格,比如activity_level = input(...).strip()。
  • 优化异常分支逻辑:原代码else分支直接输出very_active,若用户输入错误的活动等级会默认按高活动量计算,建议添加提示信息。

修复后的完整代码

# 女性每日所需卡路里计算
weight = float(input("请输入你的体重(kg):")) 
height = float(input("请输入你的身高:"))
age = int(input("请输入你的年龄:"))
activity_level = input("请输入你的活动水平:(轻度活跃、中度活跃、高度活跃)").strip() 

# 基础代谢率计算公式
bmr = 655.1 + (weight * 9.563) + (height * 1.850) - (age * 4.676) 
lightly_active = bmr * 1.375
moderately_active = bmr * 1.55
very_active = bmr * 1.9

if activity_level == "轻度活跃" :
    print(f"每日所需卡路里:{lightly_active:.2f}")
elif activity_level == "中度活跃" :
    print(f"每日所需卡路里:{moderately_active:.2f}")
elif activity_level == "高度活跃" :
    print(f"每日所需卡路里:{very_active:.2f}")
else :
    print("输入的活动等级无效,请重新输入正确的选项:轻度活跃、中度活跃、高度活跃")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:19:59