案例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