BMI计算代码出现TypeError:字符串与整数幂运算不兼容问题排查
问题分析与解决
问题所在:
你写的float(height)和float(weight)只是临时把字符串转成了浮点数,但没把转换后的值存回原变量。所以height和weight从头到尾都是字符串类型,执行height ** 2时,字符串没法和整数做幂运算,就触发了报错。修正后的代码:
height = input("enter your height in m: ") weight = input("enter your weight in kg: ") # 把转换后的浮点数重新赋值给变量,覆盖原来的字符串 height = float(height) weight = float(weight) bmi = weight / height ** 2 # 这里的float(bmi)是多余的,运算结果本身就是浮点数 print("Your BMI is " + str(bmi))
额外提示:float(bmi)这一步完全没必要,因为两个浮点数做除法和幂运算后,结果本身就是浮点数类型,不需要再额外转换。
内容的提问来源于stack exchange,提问作者Fabio Topham
相关产品推荐
相关产品推荐

