【发布时间】:2017-08-18 02:30:10
【问题描述】:
我正在进行的一个项目要求我确定成绩的范围,增加数组中的特定单元格,然后使用该数组以纯文本形式向用户打印直方图。目前,每当我的代码到达必须增加数组中单元格值的点时,我都会收到错误消息:
Traceback (most recent call last):
addGrade(gradeInput)
line 13, in addGrade
arrayOfGrades[index]=arrayOfGrades[index]+1
TypeError: 'set' object does not support indexing
我很确定它也会出现在我尝试使用数组的其他地方。这是相关代码。
gradeInput=0
arrayOfGrades={0,0,0,0,0,0,0,0,0,0,0}
i=10
def addGrade(Grade):
global arrayOfGrades
index=int(Grade/10)
arrayOfGrades[index]=arrayOfGrades[index]+1
在那里,我应该看到单元格增量,但我得到了错误。
while gradeInput!=SENTINEL:
gradeInput=float(input('Please enter your grade, or enter -1 to stop.'))
while gradeInput >100 or gradeInput <SENTINEL or (gradeInput>SENTINEL and gradeInput<0):
gradeInput=float(input('Invalid grade. Please enter a number between 0-100 '
'for your grade, or enter -1 to quit.'))
if gradeInput==SENTINEL:
print("All grades entered.")
else:
addGrade(gradeInput)
我希望它也发生在该代码段的底部。
for x in range(10):
printGradeCount(i,arrayOfGrades[i])
i=i-1
这里也是。
【问题讨论】:
-
试试这个:打印类型(arrayOfGrades),arrayOfGrades
-
在旁注中,您的
global arrayOfGrades声明是不必要的(@simba 的解决方案应该可以解决您的实际问题)
标签: python arrays object indexing typeerror