0

助けが要る。

現在の私のコードスケルトンは次のようになっています。

import math
epsilon = 0.000001

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

別のポイントオブジェクトpを引数として取り、2つのポイント間のユークリッド距離を返すdist_to_pointというメソッドを追加する必要があります。math.sqrtを使用できます。

テストケース:

abc = Point(1,2)
def = Point(3,4)
abc.dist_to_point(def) ===> 2.8284271

どうすればこれを行うことができますか?非常に混乱。ありがとう。

編集:宿題ではありません。メソッドの追加は理解していますが、self._xなどと組み合わせてユークリッド距離を計算する方法がわかりません。私はそこで混乱します

4

2 に答える 2

2

署名付きのメソッドを追加する必要がありますdist_to_point(self, p)。その方法では、2つのスペース内の2つのポイント間の距離の式を実装する必要があります(これは、他のソースの中でも特にWikipediaから入手できます)。

メソッド内で、呼び出されたポイントの座標をself._xおよびとして参照できますself._y引数ポイントの座標はとにp._xなりp._yます。

始めるにはそれで十分ですか?

于 2012-04-16T02:48:05.180 に答える
1

これが宿題ではないと言うなら、直接の答えが求められます。いくつかの実用的なコードは次のとおりです。

import math
epsilon = 0.000001

class Point:
    def __init__(self, x, y):
        self._x = x
        self._y = y
    def dist_to_point(self, other):
        'Compute the Euclidean distance between two Point objects'
        delta_x = self._x - other._x
        delta_y = self._y - other._y
        return (delta_x ** 2 + delta_y ** 2) ** 0.5

サンプルセッション:

>>> point_abc = Point(1,2)
>>> point_def = Point(3,4)
>>> point_abc.dist_to_point(point_def)
2.8284271247461903
于 2012-04-16T03:15:09.600 に答える