TypeError:“int”对象在lis中不可调用

2024-04-19 13:52:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一个勒让德函数的程序,如下所示,但它显示出一些错误。我不习惯用Python来排列数组,但是在C++中知道它们。在

from math import *

j = 0
arr = [0 for i  in range (6)]
k= 3.75
arr[0]= 1
arr[1] = 1 
x0= -1
xf = 1
x= x0
h= 0.1

f1 = open('leg.dat', 'w')

while x< xf:
    for j in range(0,5):
        arr[j+2]= (arr[j] *(j*j + j -k)/((j+2)*(j+1)))
        print >>f1, x,(x**j)*(((j+2)(j+1)*arr[j]) - (j*(j-1)*arr[j]) - (2*j*arr[j]) + k*arr[j])
        x = x+h

f1.close ()

显示的错误:

^{pr2}$

Tags: 函数infromimport程序for错误range
2条回答

问题是:

(j+2)(j+1)

Python正试图用j+1作为参数调用j+2。在

^{pr2}$

你是说(j+2)*(j+1)?在

print >>f1, x,(x**j)*(((j+2)(j+1)*arr[j]) - (j*(j-1)*arr[j]) - (2*j*arr[j]) + k*arr[j])
                        ^^^  ^^^

您没有指定这两个值之间的操作。你是想让他们成倍增长吗?在

^{pr2}$

相关问题 更多 >