Python:获取类型错误

时间:2017-04-23 01:12:26

标签: python python-3.x typeerror

我收到了类型错误:

TypeError: unsupported operand type(s) for -: '`tuple`' and '`float`'

我将此作为代码:

elif corner == "SW":
    return ((self.centerx)-(xcoord)),((self.centery) - (ycoord))

为什么我的减法符号会出现类型错误?

1 个答案:

答案 0 :(得分:1)

虽然我同意@ Code-Apprentice,但您的代码示例并不完整,因此难以提供答案......

我会提出以下建议。

错误表示您的代码正在尝试计算tuplefloat值之间的差异。

((self.centerx)-(xcoord)),((self.centery) - (ycoord))  

如果要检查变量:

self.centerx
xcoord
self.centery
ycoord

您可能会发现其中一个或多个是tuple,而其中一个或多个是float

检查它们的一种简单方法是在您的示例代码行之前插入一段这样的代码。

print(type(self.centerx),
      type(xcoord),
      type(self.centery),
      type(ycoord))
((self.centerx)-(xcoord)),((self.centery) - (coord))

您可能会看到类似这样的内容:

<class 'tuple'> <class 'float'> <class 'tuple'> <class 'float'>

此时,您需要找到一种标准化值的方法,以便您可以执行您想要执行的计算。但这将是一个单独的问题。

**注意:虽然在许多情况下使用type()会起作用,但为了简单检查Python对象,它有时会遇到问题,在这种情况下isinstance()是正确的解决方案。