Python 3.2.1:将条目转换为数字

时间:2011-10-31 23:45:19

标签: python graphics numbers

我自己试图创建一些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()和类似的东西,但我仍然会遇到错误。

2 个答案:

答案 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.widthPodium1Bid.point.x直接访问。