类型错误:"int"对象在遍历 2D 数组时不可迭代



有一个函数接受2D_INTEGER_ARRAY students_marks作为参数。我必须计算列表中所有学生的成绩,存储到列表中,然后返回。计算学生成绩的步骤:迭代每个学生计算平均成绩,并根据一个学生的平均成绩找到成绩。将每个学生的成绩存储在列表中,并返回。每当我尝试遍历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
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

最新更新