TypeError:“int”对象在遍历2D数组时不可编辑

2024-09-30 01:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个函数接受2D_整数_数组学生_标记作为参数。 我必须计算列表中给出的所有学生的分数,存储到列表中,然后返回。计算学生成绩的步骤:迭代每个学生计算平均分数,并根据学生的平均分数查找成绩将每个学生的成绩存储到列表中,然后返回。 每当我尝试遍历2D数组时,它都会显示错误。 我的代码:

def calculateGrade(students_marks):

l=[]
k=[]
for i in students_marks:
    for j in i:
        avg=sum(j)/len(i)
        l.append(avg)
        
for i in range(l+1):
    
    if i>=90:
        k.append("A+")
    elif i in range(80,90):
        k.append("A")
    elif i in range(70,80):
        k.append("B") 
    elif i in range(60,70):
        k.append("C")
    elif i in range(50,60):
        k.append("D")                 
    elif i<50:
        k.append("F")
return k                
    
    
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

students_marks_rows = int(input().strip())
students_marks_columns = int(input().strip())

students_marks = []

for _ in range(students_marks_rows):
    students_marks.append(list(map(int, input().rstrip().split())))

result = calculateGrade(students_marks)

fptr.write('\n'.join(result))
fptr.write('\n')

fptr.close()

我的错误

Traceback (most recent call last):

  File "Solution.py", line 56, in <module>

    result = calculateGrade(students_marks)

  File "Solution.py", line 24, in calculateGrade

    avg=sum(j)/len(i)

TypeError: 'int' object is not iterable

Tags: in列表forrange学生分数intavg
1条回答
网友
1楼 · 发布于 2024-09-30 01:26:36
def calculateGrade(students_marks):
    r = []
    
    for  i in range(len(students_marks)):
        avg= int(sum(students_marks[i])/students_marks_columns)
        if avg >= 90:
            r.append('A+')
        elif avg in range(80,90):
            r.append('A')
        elif avg in range(70,80):
            r.append('B')
        elif avg in range(60,70):
            r.append('C')
        elif avg in range(50,60):
            r.append('D')
        else:
            r.append('F')
        
    return r

相关问题 更多 >

    热门问题