我正在写一个简短的脚本来计算三个不同个体的体重指数。我还在学东西,所以没什么特别的。我得到了我需要的所有数据,并且可以在大部分内容中写入。但我似乎一件事都做不到。尝试以下代码时:
代码:
name1 = "X"
height_m1 = 1.7
weight_kg1 = 90
name2 = "Y"
height_m2 = 1.6
weight_kg2 = 100
name3= "Z"
height_m3 = 1.6
weight_kg = 80
以上代码运行时没有错误
def bmi_calc(name, height_m, weight_kg):
bmi = weight_kg / height_m **2
print("BMI: ")
print(bmi)
if bmi < 25:
print("Name:", name+".", "BMI:", bmi+".", name, "is not overweight")
else:
print("Name:", name+".", "BMI:", bmi+".", name, "is overweight")
以上代码运行时没有错误
results1 = bmi_calc(name1, height_m1, weight_kg1)
results2 = bmi_calc(name2, height_m2, weight_kg2)
results3 = bmi_calc(name3, height_m3, weight_kg3)
当我尝试将我的3个变量插入上述代码时,它返回以下错误消息:
BMI: 31.14186851211073
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-68-c528c04b0723> in <module>()
----> 1 results1 = bmi_calc(name1, height_m1, weight_kg1)
2 results2 = bmi_calc(name2, height_m2, weight_kg2)
3 results3 = bmi_calc(name3, height_m3, weight_kg3)
<ipython-input-66-59d41ff4404c> in bmi_calc(name, height_m, weight_kg)
5 print("Name:", name+".", "BMI:", bmi+".", name, "is not overweight")
6 else:
----> 7 print("Name:", name+".", "BMI:", bmi+".", name, "is overweight")
TypeError: unsupported operand type(s) for +: 'float' and 'str'
错误似乎集中在字符串上,但我不明白为什么
只需将浮点值转换为字符串,就可以编写相同的内容
在这一行中,变量
bmi
是一个浮点,而"."
是一个字符串,因此您不能添加、转换bmi
为字符串来执行此操作类型转换将允许添加两个字符串
相关问题 更多 >
编程相关推荐