0

したがって、2 つの多次元ポイントを一緒に追加して新しい座標を出力する関数を Python で作成する必要があります。

私はから始めます

class point:
  def__int__(self,dim,data):
    self.dim=dim
    self.data=[]
    for i in range(dim):
      self.data.append(float(data[i]))

この部分は割り当てコードで与えられており、変更できません。必要な関数は p1.add(p2) のように入力する必要があります

私が現在書こうとしている関数は次のようになります

def add (self, p2):
  sum=0
  for i in p1.data:
    for i in p2.data:
      sum+=(p1.data[i])+(p2.data[i])
  return sum

次に、2 つの点を定義します。

p1=point(2,[3,4])
p2=point(2,[6,7])

関数の実行を試みます。

p1.add(p2)

次に、エラーが発生します

TypeError: list indices must be integers, not float

私の予想される出力は、座標のある点になるはずです。

(9,11)

何が間違っているのかわからないので助けてください。

4

1 に答える 1

0

for i in p2.data整数ではなく浮動小数点数である p2.data のインデックスではなく要素を反復処理します。

試す

for a, b in zip(self.data, p2.data)

そして、あなたがどこまで到達するかを見てください。一緒に座標を反復処理します。

たとえば、最初の反復にはaasself.data[0]basがありp2.data[0]ます。

次の反復にはaasself.data[1]basがありますp2.data[1]

于 2013-10-28T00:57:44.773 に答える