【问题标题】:Python error index out of boundsPython错误索引超出范围
【发布时间】:2015-03-01 07:58:15
【问题描述】:

我的代码编写如下,但由于索引超出范围而无法运行,有人可以告诉我哪里做错了吗?

def potential(a,b,c,d):
    energylist = []
    for x in np.arange(-5,10,0.1):
        for y in np.arange(-5,10,0.1):
            expa = np.exp(-(x-a)**2)
            expb = np.exp(-(y-b)**2)
            expc = np.exp(-(x-c)**2)
            expd = np.exp(-(y-d)**2)
            if x-y != 0:
                integ = expa*expb*(1/np.abs(x-y))*expc*expd
                energylist.append(integ)
    val = sum(energylist)
    return val

def htable(*myions):
    k = len(myions)
    matrix = np.zeros((k^2,k^2),float)
    for i in np.arange(0,k^2-1,1):
        for j in np.arange(0,k^2-1,1):
            m = myions[i/k]
            n = myions[i%k]
            o = myions[i/k]
            p = myions[i%k]
            matrix[i,j] = potential(m,n,o,p)
    print matrix
    return matrix

htable(1,3)

【问题讨论】:

    标签: python indexing bounds


    【解决方案1】:

    ^ 不是求幂运算符,而是二进制异或运算符;将 ^ 替换为 ** 以获取幂。 2 ^ 2 == 0,这会使您的 matrix 具有 0 x 0 个元素。

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      相关资源
      最近更新 更多