-1

编辑:我向你保证,当我通过 python 运行它时,一切都正确缩进。我认为问题与我如何调用 p._x 和 p._y 有关,但我不确定为什么?

这是一个我非常困难的问题。这没有任何意义。我必须通过程序检查器提交它,因此它会检查代码并确保其正确。如果它不正确,它会给出一个无用的错误报告。

好的,这就是我想要做的:我需要计算两个向量(x,y)之间的距离。

这是程序将运行的测试用例:

foo = Point(1,2)
bar = Point(3,4)
foo.dist_to_point(bar) = 2.8...

这是我的代码:

import math
class Point:
    def __init__(self, x, y):
      self._x = x
      self._y = y


    def dist_to_point(self, p):
      a = self._x - p._x
      b = self._y - p._y
      c = math.sqrt(a**2+b**2)
      return c

它不起作用。它给我的错误是“您正在尝试索引一个点对象。它们不是列表或元组 - 对于点对象 p 使用 p._x 和 p._y 访问所需的变量。

有任何想法吗?

4

2 回答 2

4

Python 要求所有缩进都相同。我看到您混合使用制表符和空格,因此您的代码甚至无法正确编译。这是与上面相同的代码,只是所有缩进都是两个空格,而不是制表符和空格的混合(它可以编译并且可以工作!):

import math
class Point:
  def __init__(self, x, y):
    self._x = x
    self._y = y

  def dist_to_point(self, p):
    a = self._x - p._x
    b = self._y - p._y
    c = math.sqrt(a**2+b**2)
    return c


foo = Point(1,2)
bar = Point(3,4)
print(foo.dist_to_point(bar))

选择制表符或空格 - 不要同时使用两者。:)

于 2013-09-02T05:24:56.553 回答
1

疯狂的猜测:

  • 在其他地方,在未显示的代码中,您应该使用点的集合,但您使用的是单个点。

  • 您应该实现对点坐标的索引访问。

您应该查看作业。

于 2013-09-02T05:35:17.663 回答