回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在写一个简短的脚本来计算三个不同个体的体重指数。我还在学东西,所以没什么特别的。我得到了我需要的所有数据,并且可以在大部分内容中写入。但我似乎一件事都做不到。尝试以下代码时:</p>
<p>代码:</p>
<h2>体重指数计算器</h2>
<pre><code>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
</code></pre>
<p>以上代码运行时没有错误</p>
<pre><code>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")
</code></pre>
<p>以上代码运行时没有错误</p>
<pre><code>results1 = bmi_calc(name1, height_m1, weight_kg1)
results2 = bmi_calc(name2, height_m2, weight_kg2)
results3 = bmi_calc(name3, height_m3, weight_kg3)
</code></pre>
<p>当我尝试将我的3个变量插入上述代码时,它返回以下错误消息:</p>
<pre><code>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'
</code></pre>
<p>错误似乎集中在字符串上,但我不明白为什么</p>