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

Python入门:计算BMI时将输入字符串转int触发报错如何解决?

报错原因
  • 核心错误出在height*height这行运算:input()函数获取的用户输入默认是字符串类型,字符串仅支持和整数相乘实现内容重复,不支持两个字符串相乘,因此触发类型错误。
  • 除此之外代码还存在两个隐藏问题:
    1. 带小数点的字符串(如"5.9")无法直接通过int()转换,会额外抛出ValueError
    2. 最终print语句中,数值类型的BMI计算结果不能直接和字符串用+拼接,同样会触发类型错误
修复方案

修复逻辑:先把输入的身高、体重转成浮点型,再用round()函数对身高做四舍五入得到你预期的整数值,计算BMI后用格式化方法输出结果即可。
修复后代码如下:

print("Today we are going to calculate your BMI")
weight = input("What is your weight? ")
height = input("What is your height? ")

# 输入先转浮点型再处理
weight_float = float(weight)
# 5.9四舍五入得到整数6
height_rounded = round(float(height))

bmi = weight_float / (height_rounded ** 2)
# 格式化输出,保留2位小数可读性更高
print(f"Congratulations your BMI is {bmi:.2f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:36:03