2015-06-12 40 views
-2

我收到錯誤「標籤和空格在縮進中使用不一致」,但據我所知,一切都應該如此。具體來說,它指的是for item in poly(1:):,它在最後一個冒號下面有一個胡蘿蔔。我正在使用Notepad ++編輯器和Python 3.4。有什麼想法嗎?標籤和空格的使用不一致

def compute_deriv(poly): 
    new_poly =() 
    for item in poly(1:): 
     new_poly.append(poly.index(item)*item) 
    return new_poly 

print(compute_deriv(-13.89,0.0,17.5,3.0,1.0)) 
+0

什麼是* first *錯誤消息? –

+2

查看 - >顯示符號 - >顯示空白和製表符 –

回答

1

您還沒有建立在所有的列表,並切片正確:

new_poly = [] # now it's a list 
for item in poly[1:]: # poly[1:] not poly(1:) 

你的語法是完全無效的,製表符和空格都沒有的的原因。你也不能追加到一個元組,你追加到一個列表中。

我也將使用枚舉來獲得指標,除非你只想爲重複的元素,第一個指標:

def compute_deriv(poly): 
    new_poly = [] 
    for ind , item in enumerate(poly[1:],1): 
     new_poly.append(ind*item) 
    return new_poly 

如果你想有一個元組,那麼你應該知道的元組沒有append,他們是不可改變因此每次迭代都必須創建一個新元組,或者只需使用一個列表並返回tuple(new_poly)

您還沒有傳遞可切片的對象,當你調用該函數,而不是傳遞5個參數傳遞給這需要1

如果你真的想要一個元組只使用一個根exp和在它調用元組的函數:

def compute_deriv(poly): 
    return tuple(ind*item for ind, item in enumerate(poly[1:])) 

把它傳遞項目的元組:

print(compute_deriv((-13.89,0.0,17.5,3.0,1.0))) 

輸出:

(0.0, 17.5, 6.0, 3.0) 
+0

但我不想創建一個列表,我想創建一個元組。 – futevolei

+0

問題中的給定代碼應該彈出'SyntaxError',而不是涉及製表符/空格的內容。有可能是別的東西也不對。 – TigerhawkT3

+0

@futevolei你將如何追加到一個元組? –