Python算法练习

问题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
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值