问题1:二维数组处理
定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课按存储顺序依次为:core C++,coreJava,Servlet,JSP和EJB。
(1)循环给二维数组的每一个元素赋0~100之间的随机整数。
(2)按照列表的方式输出这些学员的每门课程的成绩。
(3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。
(4)要求编写程序求所有学员的某门课程的平均分。
from __future__ import division
import random
def score(score_list,course_list,student_num):
course_num = len(course_list)
every_score = [[score_list[i][j] for i in range(len(course_list))] for j in range(student_num)]
every_total = [sum(every_score[i]) for i in range(student_num)]
ave_score = [sum(score_list[i]) / student_num for i in range(len(course_list))]
return (every_score, every_total, ave_score)
if __name__ == "__main__":
course_list = ["Java","C++","Python","Perl","Servlet"]
student_num = 20
score_list = [[random.randint(0, 100) for i in range(student_num)] for j in range(len(course_list))]
print score_list
for i in range(len(course_list)):
print "score of everyone in %s:"%course_list[i]
print score_list[i]
every_score,every_total,ave_score = score(score_list,course_list,student_num)
print "\n"
for name in course_list:
print name,
print "\t"
print every_score
print "\n"
print "every one all score: \t",every_total
print "every one ave score: \t",ave_score
[[18, 87, 24, 82, 63, 28, 6, 100, 74, 24, 71, 35, 8, 1, 32, 23, 76, 62, 80, 59], [61, 66, 8, 97, 2, 98, 1, 26, 50, 61, 60, 48, 60, 59, 56, 43, 51, 25, 59, 41], [47, 76, 55, 95, 71, 25, 86, 17, 37, 69, 29, 100, 64, 13, 100, 48, 77, 35, 32, 89], [27, 54, 68, 5, 68, 23, 80, 20, 34, 68, 59, 65, 34, 79, 44, 86, 60, 51, 100, 89], [67, 24, 24, 43, 98, 90, 9, 72, 57, 41, 26, 33, 27, 47, 75, 60, 64, 6, 40, 5]]
score of everyone in Java:
[18, 87, 24