制表符和空格的使用不一致

时间:2015-06-12 20:08:07

标签: python

我收到错误“缩进中标签和空格的使用不一致”,但据我所知,一切都是应该的。具体来说,它指的是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))

1 个答案:

答案 0 :(得分:1)

您根本没有创建列表并且切片不正确:

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

您的语法完全无效,标签和空格不是原因。你也不能附加到元组,你附加到列表。

除非你只想要重复元素的第一个索引,否则我还会使用enumerate来获取索引:

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

如果你想要一个元组,那么你应该知道元组没有附加,它们是不可变的所以你必须在每次迭代时创建一个新的元组,或者只是使用一个列表并返回tuple(new_poly)

调用函数时也不传递可切片对象,而是将5个args传递给一个取1的函数。

如果你真的想要一个元组,只需使用gen 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)