python - BMI 计算器:ValueError:无法将字符串转换为浮点数:X
问题描述
所以上周我决定学习用 python 编码,因为我有 C++ 和 C# 的经验,老实说,对我来说没什么。另一方面,Python 可以。我决定制作一个 BMI 计算器,因为我发现它很简单。问题出现在 if 部分。我添加了我找到的代码,但它只是将一个错误切换到另一个错误。任何提示将不胜感激:)
旁注:这只是一个更大的代码的一部分,它告诉你有多少克,例如。你应该摄入的脂肪。但目前我被困在这里。
try:
weight = float(input("""What is your weight (Kg)?
>>> """))
height = float(input("""What your height (m)?
>>> """))
except ValueError:
print("Incorrect input")
continue
bmi = weight / (height * height), 2
print(name + " your BMI is " + str(bmi))
bmi2 = float('.'.join(str(ele) for ele in bmi))
if bmi2 < 18.4:
print("You are under weight by BMI standards!")
elif bmi2 == 18.5 and bmi2 <= 24.9:
print("You are normal weight by BMI standards!")
elif bmi2 == 25 and bmi2 <= 29.9:
print("You are over weight by BMI standards!")
elif bmi2 == 30 and bmi2 <= 34.9:
print("You have obesity (class 1) by BMI standards!")
elif bmi2 == 35 and bmi2 <= 39.9:
print("You have obesity (class 2) by BMI standards!")
elif bmi2 > 40:
print("You have obesity (class 3) by BMI standards!")
解决方案
您的代码存在一些问题,因此让我们来看看它们:
- 在第 9 行,您有一个非法
continue
声明。您不在循环中或switch
. - 在第 11 行(编辑前的第 12 行),您使用了一个名为
name
. 我猜你在提供的代码之外定义了这个,但如果没有,你必须定义它。 - 您将 BMI 输出为
tuple
. 这可以追溯到第 9 行(编辑前的第 10 行),您将其定义为weight / (height * height), 2
. 删除, 2
. - 我不知道您要使用
bmi2
第 13 行定义的变量来做什么,您可以简单地bmi
在这些函数中使用并且应该可以正常工作。 - 您还需要将
==
关于 BMI 标准部分中的所有运算符更改为 >=,并将and
语句更改为or
.
推荐阅读
- npm - Gulp 4 - 检测旧版本中的更改,但不向 css 添加新类
- postgresql - 时间戳列上时间范围之间的 Postgresql 查询
- sql - 如果表不存在,如何选择不出错
- arrays - 在矩阵数组中的每个矩阵上应用一个函数(MATLAB)
- qt - QML ListView:如何将所选项目复制到剪贴板?
- latex - 在 gnuplot 中使用 LaTex 字体时字母相互重叠
- python - 将事件添加到正在运行的 sched.scheduler
- c# - 使用 GCHandle.Alloc() 访问和操作固定内存的正确方法是什么?
- scikit-learn - 将决策树设为弱学习器,但得分 > 80%
- java - firebase.auth.FirebaseUser.linkWithCredential 抛出空指针异常