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