'int'对象没有属性'__getitem__'Python

时间:2015-10-31 18:19:40

标签: python

我的代码是第二个ODE的Euller方法。我已经尝试用这种方式来定义f {def inicial(): 全球的 F =矩阵(M,N)} 但我在同一条线上遇到了问题。我不知道如何识别我的功能。

N=101
x_min = -10.0
x_max = 10.0;
dx = (x_max - x_min)/(N-1)
dt = 0.25*dx*dx
t=0
t_max = 1000
Q=1
j=0
M=2
f = [N , M]



def f_xx(i,t):
  return ((f[i+1][t]-2*f[i][t]+f[i-1][t])/(dx*dx))


def guess(x):
  return ((pi*Q/x_max)*x +(pi*Q))


for i in range (N):
  for j in range(j):
    x = x_min + i*dx
    f[i][j] = guess(x)


  for j in range(t_max+1):
    for i in range(N-1):
      x = x_min + i*dx
      f[i][j+1] = f[i][j]+(f_xx(i,j)-sin(f[i][j]))*dt <<<error

   for i in range (N-1):
     f[i][j] = f[i][j+1]

什么意思'int'对象没有属性getitem?有人可以帮忙解决吗?

2 个答案:

答案 0 :(得分:1)

[2015-10-31 18:16:55 - Lab5] Performing sync [2015-10-31 18:16:55 - Lab5] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Android' [2015-10-31 18:16:55 - Lab5] Uploading Lab5.apk onto device 'emulator-5554' [2015-10-31 18:16:56 - Lab5] Installing Lab5.apk... [2015-10-31 18:17:06 - Lab5] Success! [2015-10-31 18:17:06 - Lab5] /Lab5/bin/Lab5.apk installed on device [2015-10-31 18:17:06 - Lab5] Done! 是一个包含两个整数的列表。 f指的是第i个int;因此f[i]将尝试获取int的第j个值,无论f[i][j]的值是什么,它都不可能工作。

但是,目前还不清楚你打算用这个电话做什么。

答案 1 :(得分:0)

您正在尝试将f用作列表列表(例如,像二维数组),但它实际上只是一个列表:[101,2]。

我在ODE上生锈,但我认为你试图创建一个0x的101x2网格。如果是这样,尝试f = [[0.0] * M表示范围(N)中的x]。