作为Python的Tkinter的初学者,我试图在Tkinter上创建一个“终极健身计算器”,供用户输入他们的体重、身高、年龄,并找出他们的BMR(基本代谢率)和TDEE(每日总能量消耗)。我已经把大部分代码都写下来了,但我一直在调试算法的某个部分。你知道吗
问题是如何将字符串转换为浮点。你知道吗
我很困惑,因为我已经写下了所有必要的全局变量,而且我认为W,H和A应该是浮点数,因为我是这样编码的。例如,我说H=(float(Height_CM.get公司())),W=(浮子(重量_KG.get公司())),等等。以下是错误:
line 53, in Q1d_Gender
BMR = (66 + (13.7*float(W)) + (5*float(H)) - (6.8*float(A)))
ValueError: could not convert string to float: 'w'
另外,我通过简单地将语句打印到控制台来测试上述算法,如下所示:
W = input("enter weight")
H = input("enter height")
A = input("enter age")
BMR = (66 + (13.7*float(W)) + (5*float(H)) - (6.8*float(A)))
print(BMR)
而且成功了。我不明白为什么它不能与tkintergui一起工作。你知道吗
查看tkinter的完整代码,并将其复制粘贴到Pycharm或任何Python程序中。谢谢你的帮助,是的,我是一个初学者:(
您需要确保用户输入的每个值都是有效的数字。如果您尝试对除只包含整数或浮点的字符串以外的任何对象使用
float()
,那么这将导致错误。如果是我,我会在这里使用try/except
方法来检查每个值,如果其中一个不是浮点数,那么请用户重新输入值。你知道吗这可以通过使用一个函数来完成,该函数在所有答案都做出后进行检查。 我将使用一个列表来存储所有的值,因为它更干净,更容易处理多个变量名。你知道吗
参见下面的代码。你知道吗
程序正在尝试将输入字符串转换为浮点。有时这会起作用,比如
2
或3.5
。但是,用户也可以输入非浮动的内容,比如w
。它将试图铸造这一点,并失败,正如你所看到的。你知道吗你必须检查这些非浮动并对它们做些什么。要确定字符串是否是数字,请检查以下问题: How to check if string input is a number?
相关问题 更多 >
编程相关推荐