我正在进行的项目要求我确定成绩落入的范围,增加数组中的特定单元格,然后使用该数组以明文形式向用户打印直方图。目前,每当我的代码到达必须递增数组中单元格值的点时,我都会收到错误:
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
也在这里。
答案 0 :(得分:2)
arrayOfGrades={0,0,0,0,0,0,0,0,0,0,0}
{...}创建一个无法编入索引的集合数据结构。你似乎想要的是一个使用[...]语法的列表。
尝试将其更改为:
arrayOfGrades=[0,0,0,0,0,0,0,0,0,0,0]