此代码中的错误“名称错误:未定义名称”是什么意思

时间:2019-04-20 19:21:17

标签: python python-3.x

考虑以下代码:

def distancias(altitudes,lado,p1,p2):
    p1=(r1,c1)
    p2=(r2,c2)
    a1=altitudes[p1]
    a2=altitudes[p2]
    d=math.sqrt((lado(r1-r2)**2)+(lado(c1-c2)**2)+(a1-a2)**2)
    return d

海拔高度是一个矩阵,p1p2是矩阵的元素。

当我调用函数distancias(teste, 20, (2, 0), (3, 1))时,它给了我这个错误:

Traceback (most recent call last):

  File "<ipython-input-11-6c6a4bb1ff77>", line 1, in <module>
    distancias(teste, 20, (2, 0), (3, 1))

  File "C...", line 5, in distancias
    p1=(r1,c1)

NameError: name 'r1' is not defined

    "Name Error: name is not defined".

(由于我是Python新手,所以我想更好地理解它)

1 个答案:

答案 0 :(得分:0)

您好,这是因为“ r1,c1,r2,c2”不是函数distancias的定义。 因此,使用前应先定义这些变量。实际上,您应该发布完整的代码,以更好地理解其他人。但是,如果您可以使用此代码,则应该更改类似的内容。

     `def distancias(altitudes,lado,r1,r2,c1,c2):
      p1=(r1,c1)
      p2=(r2,c2)
      a1=altitudes[p1]
      a2=altitudes[p2]
      d=math.sqrt((lado(r1-r2)**2)+(lado(c1-c2)**2)+(a1-a2)**2)
      return d`