float'对象没有属性'__getitem__'

时间:2016-09-13 08:09:05

标签: python python-2.7 python-3.x numerical-methods numerical-analysis

我正在实施Neville的方法并且收到错误。我已经看到了其他类似错误的回复,但无济于事。这是我的代码:

def f(x):
    return x**2

n = 2
x = 1.5
xa = [1.0,2.0,3.0]
func = [f(k) for k in xa ]
P = [([0] * (n+1)) for i in range(n+1)]
for i in range(0,n+1):
    P[i][0] = func[i]

for i in range(1,n+1):
    for j in range(1,i+1):
        P[i][j] = ((x[i]-x[i-j])*(P[i][j-1]) - (x-x[i])*(P[i-1][j-1]))/(x[i]-x[i-j])

print (P)

我不断得到的错误是:

float' object has no attribute '__getitem__'

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

x定义为1.5,并且永远不会在您的代码中进行修改。但是在不同的点上你会调用像x[i]这样的东西,意思是“x的第i个元素” - 浮点数没有你可以通过索引引用的元素。

你可能在那些地方指xa;但如果是这样,我不知道你为什么要x