首页 > 解决方案 > 解决 sqrt 函数 Python 中的 TypeError 错误

问题描述

所以我有这段代码,当我尝试使用该数学库的 sqrt 函数作为距离公式时收到错误消息。

有人可以帮我解决这个 TypeError 吗?

import math

def isCollision(basketX, basketY, appleX, appleY):
    distance = math.sqrt((math.pow(basketX - appleX, 2)) + (math.pow(basketY - appleY, 2)))
    if distance < 27:
        return True
    else:
        return False


collision = isCollision(basketX[i], basketY[i], appleX, appleY)
        if collision:
            score_value += 1
            appleX[i] = random.randint(0, 735)
            appleY[i] = random.randint(0, 150)

这是我收到的错误(注意:这是更大代码的一小部分,这就是为什么它说第 101 行):

Traceback (most recent call last):
  File "C:/Users/shaha/PycharmProjects/ApplePicker/main.py", line 101, in <module>
    collision = isCollision(basketX[i], basketY[i], appleX, appleY)
TypeError: 'int' object is not subscriptable

标签: pythondebuggingmathdistancesqrt

解决方案


basketX并且basketY似乎是 typeint而不是 type list,因此您无法通过basketX[i]or访问任何信息basketY[i]

尝试将basketXandbasketY直接传递给函数。


推荐阅读