python-3.x 我的Java类认为它正在尝试返回文本,尽管返回类型是void

wn9m85ua  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(77)

我的名字是杰夫,我需要帮助我的代码,请我怎么做,以打印出距离

ibrsph3r

ibrsph3r1#

您使用了错误的距离度量。您在contains_point中实际计算的距离类似于曼哈顿距离,但您需要欧几里得距离才能正确计算:

def distance(point_a, point_b):
    return math.sqrt(sum([(p - q)**2 for p, q in zip(point_a, point_b)]))

但事实上,你不必为此烦恼,因为已经有内置的函数:math.dist这样,contains_point方法看起来就像这样:

def contains_point(self, p):
    return math.dist(p, self.center) <= self.radius

你也可以改进其他的东西。我给予你一个改进contains_square方法的提示:你不必检查所有4个角,如果你得到的最小的圆仍然包含正方形,并检查这个圆是否适合另一个。

相关问题