python - 初学者python,TypeError:+的不支持的操作数类型:'float'和'str'
问题描述
我正在编写一个简短的脚本来计算三个不同个体的 BMI。我还在学习东西,所以没什么花哨的。我得到了我需要的所有数据,并且可以写入大部分内容。不过,我似乎无法完成一件事。尝试以下代码时:
代码:
体重指数计算器
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'
错误似乎集中在字符串上,但我不明白为什么
解决方案
print("Name:", name+".", "BMI:", bmi+".", name, "is overweight")
在这一行中,变量bmi
是一个浮点数并且"."
是一个字符串,因此您可能不会添加、转换bmi
为字符串来执行此操作
print(... str(bmi)+"." ...)
类型转换将允许添加两个字符串。
推荐阅读
- javascript - 如何访问您使用 Web 应用程序客户端放入的文件?
- javascript - “[]”在此代码段中如何工作?这是 ES6 的特性吗?
- mysql - 这是我对季度报告的查询,但没有出现所有季度,只出现 1 列
- angular - (更改)角度不在第一个元素角度 6 之后
- hive - 在 Hive 操作中运行 Hive 查询与在 Oozie 中运行 Beeline
- tensorflow - 找到卷积层和密集层的数量
- javascript - 手动设置 Panopto 的速度
- r - 如何用 2 个变量绘制直方图
- python - 在 input() 提示中打印列表的元素,没有 .join 并将列表转换为 str
- javascript - JavaScript:切换按钮禁用属性