def make_2d_list(row, col): grades=[[0 for i in range(col)]for j in range(row)] for i in range(row): for j in range(col): grades[i][j]=int(input("enter grade ")) return grades def ave(list, row, col): sum=0 for i in range(row): for j in range(col): sum+=list[i][j] return sum/(row*col) def max(list, row, col): max_grade=list[0][0] max_i=0 max_j=0 for i in range(row): for j in range(col): if(list[i][j]>max_grade): max_grade=list[i][j] max_i=i max_j=j return max_grade, max_i, max_j def ave_grade(list, row, col): ave_per_course=[0]*col ave_per_st=[0]*row for i in range(row): sum=0 for j in range(col): sum=sum+list[i][j] ave_per_st[i]=sum/col for j in range(col): sum=0 for i in range(row): sum=sum+list[i][j] ave_per_course[j]=sum/row return ave_per_course, ave_per_st def main(): row=int(input("number of students ")) col=int(input("number of courses ")) grades=make_2d_list(row, col) ave_res=ave(grades, row, col) max_grade, max_i, max_j=max(grades, row, col) ave_course,ave_stu=ave_grade(grades, row, col) for i in range(row): print(grades[i]) print("average grade ", ave_res) print("max values", max_grade, max_i+1, max_j+1) print("averages per student ") print(ave_stu) print("averages per course ") print(ave_course) main()