在python中,我得到这个错误:
TypeError: 'int' object is unsubscriptable
这发生在:
sectorcalc[i][2]= ((today[2]/yesterday[2])-1)
我在任何地方都找不到python unsubscribable的好定义。
for quote in sector[singlestock]:
i+=1
if i < len(sector):
if i==0:
sectorcalc[i][0]= quote[0]
sectorcalc[i][2]= 0
sectorcalc[i][3]= 0
sectorcalc[i][4]= 0
sectorcalc[i][5]= 0
sectorcalc[i][6]= 0
sectorcalc[i][7]= 0
else:
yesterday = sector[singlestock-1][i]
print yesterday
today = quote
print type(today[2])
sectorcalc[i][2]= ((today[2]/yesterday[2])-1)
sectorcalc[i][3]= (today[3]/yesterday[3])-1
sectorcalc[i][4]= (today[4]/yesterday[4])-1
sectorcalc[i][5]= (today[5]/yesterday[5])-1
sectorcalc[i][6]= (today[6]/yesterday[6])-1
sectorcalc[i][7]= (today[7]/yesterday[7])-1
这个错误是什么意思?
这让人困惑:
是不是
today = datetime.date.today()
?为什么一个日期会突然引用一句名言?变量名应该是quoteForToday
还是更具表现力的名称?同样适用于yesterday
。像你那样分两次约会对我来说毫无意义。既然这是一个
quote
,那么today
和yesterday
会指不同日期的价格或费率吗?名字很重要-仔细选择。你可能是从现在起必须维持这六个月的人,你也不会记得他们的意思。不是说你写的代码是有效的,但是我不明白你为什么不使用循环。
而不是
如何重现该错误:
编写编译器的人说,您不能用以下方式执行此操作:
如果要下标,请使用如下数组:
打印内容:
解决方案:
将int提升为列表或其他索引类型,或者停止订阅int
今天[2]中的“[2]称为下标。
因为您得到一个错误-“int”对象是不可订阅的。这意味着“today”不是一个序列,而是一个int类型的对象。
当您需要序列时,您需要查找/调试“today”或“neday”是int类型对象的原因。
[编辑:明确]
相关问题 更多 >
编程相关推荐