为什么我无法增加数组中的单元格?

时间:2017-03-25 01:35:52

标签: python arrays object indexing typeerror

我正在进行的项目要求我确定成绩落入的范围,增加数组中的特定单元格,然后使用该数组以明文形式向用户打印直方图。目前,每当我的代码到达必须递增数组中单元格值的点时,我都会收到错误:

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

也在这里。

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]