这是一个问题,我有很多困难。它没有意义。我必须通过程序检查器提交,所以它检查代码并确保其正确。如果它不正确,它会发出无用的错误报告。
好的,这就是我想要做的: 我需要计算两个向量(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来访问所需的变量。
有什么想法吗?
答案 0 :(得分:4)
Python要求所有缩进都相同。我看到你正在使用标签和空格的混合,所以你的代码甚至不能正确编译。这是你上面的相同代码,只是所有的缩进都是两个空格而不是标签和空格的混合(它编译和工作!):</ p>
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))
选择标签或空格 - 不要同时使用它们。 :)
答案 1 :(得分:1)
疯狂的猜测:
在其他地方,在未显示的代码中,您应该使用一组点,但是您使用单点。
您应该实现对点坐标的索引访问。
您应该查看作业。