簡體   English   中英

python中的減法運算錯誤

[英]Error with subtraction operation in python

我試圖做減法。 所以這是我在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'

任何人請幫助我。

錯誤消息告訴您所有您需要了解的信息:

find_centroids的結果是一個tuple -在Python中,它們寫為(a,b,)

您不能從元組中減去數字。 但是你可以做

diff = [x - 320 for x in cen]

這稱為“列表理解”。 它說:“對於在cen找到的x每個值,評估x - 320 ,並將這些值作為diff的列表返回

例:

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

根據錯誤消息, find_centroid返回一個元組。

相應地更改減法表達式:

cen[0] - 320

或更改函數以返回數字而不是元組。

問題恰恰是它所說的。 您正在嘗試從元組中減去一個整數。 從代碼看,cen必須是元組,因為320是整數。 這意味着find_centriod返回一個元組。 這是有道理的,因為質心將包含x和ay坐標。

如果只需要x坐標,則可以使用cen [0]。 如果只需要y坐標,則可以使用cen [1]。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM