int和tuple连接出错

时间:2012-01-31 13:45:41

标签: python

我收到此错误:

TypeError: unsupported operand type(s) for +=: 'int' and 'tuple' 
Line 37
http://pastebin.com/LhMS9Xhx

filter = [[1,1,1],[1,1,1],[1,1,1]]
activefield = [[1,2,3],[4,5,6],[7,8,9]]
newvalue = 0
newvalue+= filter[iii][jjj]*aktuellesFeld[iii][jjj]

3 个答案:

答案 0 :(得分:2)

这非常直截了当:你不能将一个元组添加到int中。 aktuellesFeld[iii][jjj]是一个元组,它与int(filter[iii][jjj])相乘,从而产生元组。然后将该元组添加到另一个int(neuerGrauwert),这是一个TypeError

您的代码非常难以辨认。为什么要使用iiijjj等变量名称?此外,使用filter作为变量名称是一个坏主意,因为它是一个内置函数。

答案 1 :(得分:2)

第37行

            neuerGrauwert += filter[iii][jjj]*aktuellesFeld[iii][jjj]

aktuellesFeld[iii][jjj] = im.getpixel((...))是一个元组,例如:

In [8]: im.getpixel((125,125))
Out[8]: (11, 11, 11, 255)

乘以float(如filter[iii][jjj])连接元组的副本:

In [9]: 2*im.getpixel((125,125))
Out[9]: (11, 11, 11, 255, 11, 11, 11, 255)

neuerGrauwertint。而且您无法将tuple添加到int

答案 2 :(得分:0)

您尝试将一个元组添加到int。查看元组内部,提取所需的值,然后 将其添加到int。