为何我的Python IMC(BMI)计算函数无法正常运行?
解决Python计算IMC(BMI)的问题
你的代码存在三个关键问题,导致无法得到正确结果:
- 未调用函数:最后一行仅写
IMC只会输出函数对象,必须通过IMC(参数1, 参数2)的形式调用函数才能执行计算。 - IMC计算公式错误:正确的身体质量指数公式是
体重(kg) ÷ (身高(m))²,你写反了身高和体重的除法顺序,且输入的185是厘米单位,需要转换为米(1.85m)才能代入公式。 - 字符串拼接错误:不能直接将浮点数与字符串相加,必须先把数值转换为字符串类型,或者使用格式化字符串处理。
修正后的代码示例:
def calcular_imc(estatura_cm, peso_kg): # 将身高从厘米转换为米 estatura_m = estatura_cm / 100 # 计算正确的IMC值 imc_valor = peso_kg / (estatura_m ** 2) # 使用格式化字符串输出结果,保留两位小数更直观 return f"Tu índice de masa corporal es {imc_valor:.2f}" estatura = 185 peso = 74.60 # 调用函数并打印结果 print(calcular_imc(estatura, peso))
执行这段代码后,会输出类似这样的结果:
Tu índice de masa corporal es 21.79
另外,建议避免函数名和内部变量名重复(原代码中函数和内部变量都叫IMC),虽然Python允许,但容易造成混淆,这里将函数名改为calcular_imc更清晰。
内容的提问来源于stack exchange,提问作者user19778751
相关产品推荐
相关产品推荐

