python中的减法运算出错

时间:2014-02-04 03:48:59

标签: python subtraction

我试图做减法。所以这里是我在python中的命令:

import math
cen = find_centroid(im, 1)
diff = cen-320
print diff

但错误就是这样:

Traceback (most recent call last):
File "test7.py", line 26, in <module>
diff = cen-320
TypeError: unsupported operand type(s) for -: 'tuple' and 'int'

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:0)

错误消息告诉您需要知道的所有内容:

find_centroids的结果是tuple - 在Python中写成(a,b,)

您无法从元组中减去数字。但你可以做到

diff = [x - 320 for x in cen]

这称为“列表理解”。它会为x - 320中找到的x的每个值评估cen,并将这些值作为列表返回diff

示例:

>>> cen = (456,234,)
>>> diff = [x - 320 for x in cen]
>>> diff
[136, -86]

答案 1 :(得分:0)

根据错误消息,find_centroid返回一个元组。

相应地改变减法表达式:

cen[0] - 320

或者更改函数以返回数字而不是元组。

答案 2 :(得分:0)

问题正是它所说的。您试图从元组中减去一个整数。从查看代码,cen必须是元组,因为320是一个整数。这意味着find_centriod返回一个元组。这是有道理的,因为质心将包含x和y坐标。

如果您只想要x坐标,可以使用cen [0]。如果您只想要y坐标,则可以使用cen [1]。