我得到一个“TypeError:'int'对象没有属性'_getitem',我不知道为啥

Posted

技术标签:

【中文标题】我得到一个“TypeError:\'int\'对象没有属性\'_getitem\',我不知道为啥【英文标题】:I'm getting a "TypeError: 'int' object has no attribute '_getitem' and I'm not sure why我得到一个“TypeError:'int'对象没有属性'_getitem',我不知道为什么 【发布时间】:2017-09-17 20:04:59 【问题描述】:

我正在尝试整合很多内容,但显然这不是我的代码存在的问题。但我不确定它在响起的代码行中在说什么。这是给我一个错误的最后一行。

import numpy as np
import matplotlib.pyplot as plt

phi = np.zeros(181)

for i in range(0,181):
    phi[i] = i-90.

hF = np.zeros((181,321))
hM = np.zeros((181,321))
Ob = 23.5*3.131592/180
w = np.zeros(321)
e = 0.6

for j in range(0,321):
    w[j] = 2*np.pi*j/320

SF = 3230.3
SM = np.zeros(321)
L = 283

decF = np.zeros(321)

for j in range(0,321):
    decF[j] = Ob*np.sin(w[j])

dF = np.zeros(321)
dM = np.zeros(321)
QF = np.zeros((181,321))

for j in range(0,321):
    dF[j] = (1+e*np.cos(w[j]-L*np.pi/320))/(1-e**2)

for i in range(0,181):
    for j in range(0,321):
        QF = 0
        if np.abs(np.tan(phi[i]*np.pi/180)*np.tan(decF[j])) <=1:
            hF[i][j] = np.acos(-np.tan(phi[i]*np.pi/180)*np.tan(decF[j]))
            QF[i][j] = (SF/np.pi)*dF[j]*(hF[i][j]*np.sin(phi[i]*np.pi/180)*np.sin(decF[j])+np.cos(phi[i]*np.pi/180)*np.cos(decF[i])*sin(hF[i][j]))

【问题讨论】:

【参考方案1】:

你的问题是这样的:

QF = 0

然后你尝试做:

QF[i][j] = ...

您无法在整数上查找任何内容。

我还注意到您没有定义 sin 函数,但您正在尝试使用它,所以我认为您的最后一行应该是:

QF[i][j] = (SF/np.pi)*dF[j]*(hF[i][j]*np.sin(phi[i]*np.pi/180)*np.sin(decF[j])+np.cos(phi[i]*np.pi/180)*np.cos(decF[i])*np.sin(hF[i][j]))

我还注意到你打电话给np.acos,而它应该是np.arccos

【讨论】:

以上是关于我得到一个“TypeError:'int'对象没有属性'_getitem',我不知道为啥的主要内容,如果未能解决你的问题,请参考以下文章

为啥我得到一个零数组

我怎样才能只得到一个旋转矩形的四个角?

为啥我得到一个“不允许的方法”

我得到一个断点,我不知道为啥

当我得到一个 pylint 错误时,正在使用 discord.py 的 Discord 意图,因为我得到一个 pylint 错误:“分配给属性”“未在类插槽中定义”

为啥我得到一个仅在程序运行时偶尔出现的 NPE?