我自己试图创建一些Python“价格合适”。我的问题是,我正在尝试将Entry转换为数字。请参阅以下代码:
...
Podium1Bid = Entry(Point(42.5, 35), 4)
Podium2Bid = Entry(Point(122.5, 35), 4)
Podium3Bid = Entry(Point(202.5, 35), 4)
Podium4Bid = Entry(Point(282.5, 35), 4)
Bid1 = int(Podium1Bid.getText())
Bid2 = int(Podium2Bid.getText())
Bid3 = int(Podium3Bid.getText())
Bid4 = int(Podium4Bid.getText())
...
Bid2 = int(Podium1Bid.getText())等等,通过Bid4 ...给我错误:
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
ContestantsRow()
File "<pyshell#7>", line 31, in ContestantsRow
Bid1 = int(Podium1Bid.getText())
ValueError: invalid literal for int() with base 10: ''
我也尝试过使用eval()和类似的东西,但我仍然会遇到错误。
答案 0 :(得分:3)
我不确定这些PodiumBid
对象到底发生了什么,但错误:
ValueError: invalid literal for int() with base 10: ''
只是意味着python不知道如何将空字符串转换为数字。 int('')
会引发同样的异常。
如果您希望空字符串等于0
,则可以执行以下操作:
int(mystring or 0)
如果0
评估为int
(例如空字符串),将使用mystring
作为False
的输入。
答案 1 :(得分:3)
如果 Point 和 Entry 是您自己的类,您可以在 Entry 类中添加__int__方法。这将教会课程如何转换为整数。
对于Python图形库,您应该使用vars(Podium1Bid)
检查对象,以查看哪些属性可以通过Podium1Bid.width
或Podium1Bid.point.x
直接访问。