案例01: 有五名学生【张三,李四,王五,赵六,马七】每个学生有五门科目【语文、数学、英语、物理、化学】,为这5位同学随机生成5门考试的成绩【成绩介于50-100间】

需求:按照均分的倒序打印出成绩的明细 

 

import random

# student_name 存储学生姓名

student_name = ["张三", "李四", "王五", "赵六", "马七"]

# student_result 存储所有学生成绩明细

student_result = []

# 使用循环生成每个人的每个科目的成绩

for i in range(len(student_name)):

    list_temp = []  # 5门科目的成绩

    for j in range(5):

        list_temp.append(random.randint(50,100)) # 每次一个成绩

# 5门科目的成绩插入到student_result

    student_result.append(list_temp)

 

# 统计出每个人的总分

student_total_result = [] # 存储每个人的总分

for i in student_result:

    student_total_result.append(sum(i))

 

# 输出成绩的明细

print("名次    姓名   语文  数学    英语    物理    化学    总分    均分")

print("==================================================================")

for i in range(len(student_name)):

    max_result = max(student_total_result) # 获取最高分分数

    max_index = student_total_result.index(max_result) # 获取最高分的编号

    # 打印-名次

    print(i+1, end="\t\t")

    # 打印-姓名

    print(student_name[max_index], end="\t")

    # 打印-成绩5

    for i in range(5):

        print(student_result[max_index][i], end="\t  ")

    # 打印-总分

    print(max_result, end="\t ")

    # 打印-均分

    print(max_result/5)

    # 删除信息-总分

    student_total_result.pop(max_index)

    # 删除信息-成绩明细

    student_result.pop(max_index)

    # 删除信息-姓名

    student_name.pop(max_index)

print("==================================================================")

执行结果:

C:\python\python.exe C:/python/demo/file2.py

名次    姓名   语文  数学    英语    物理    化学    总分    均分

==================================================================

1                张三        93          79          74          99          96          441         88.2

2                赵六        80          87          99          52          77          395         79.0

3                李四        64          66          82          87          80          379         75.8

4                马七        81          91          71          72          53          368         73.6

5                王五        59          57          56          60          99          331         66.2

==================================================================

 

Process finished with exit code 0