2013-10-28 32 views
0

所以我必須在python中創建一個函數,它將兩個多細分點添加到一起並輸出新的座標。如何在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 

然後我定義了兩個點

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

並嘗試運行該功能:

p1.add(p2) 

然後我得到錯誤

TypeError: list indices must be integers, not float 

我的預期輸出應該是一個點與座標。

(9,11) 

請幫助我不知道我做錯了什麼。

回答

0

for i in p2.data迭代p2.data的元素而不是索引,它們是浮點數,而不是整數。

嘗試

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

,看看你走多遠。它將一起遍歷座標。

例如,第一次迭代具有a作爲self.data[0]b作爲p2.data[0]

下一個迭代有aself.data[1]b作爲p2.data[1]

+0

嗯,我不知道如果我的問題是清楚的。我有2個定義點,只是需要將它們加在一起,所以我需要我(在發佈的代碼中)充當x和y座標,並將循環添加x和y到一起給我[9,11]作爲最終的產品。我試過你的解決方案,但它仍然說需要整數,而不是元組 – user2926387

相關問題