2015-06-12 6 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

что это * первое сообщение об ошибке? –

+2

view-> show symbol-> show whitespace и TAB –

ответ

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).

Вы также пройти не sliceable объекта при вызове функции, вместо того, чтобы вы пройти 5 арг на функцию, которая принимает 1.

Если вы действительно хотите кортеж просто использовать аехр поколения и вызвать кортеж в нем:

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, как вы собираетесь присоединяться к кортежу? –

Смежные вопросы