字典的案例演示
2018-06-18 01:54:15来源:未知 阅读 ()
案例:有10个学生,姓名自行添加。有三门考试语文,数学和英语,随机为这10个学生生成分数【50-100】
需求:打印一张成绩排名表。
数据存储格式如下:
import random
# 初始化学生的基本信息
dic_student_info = {95001: "王一", 95002: "胡二", 95003: "张三", 95004: "李四", 95005: "赵五",
95006: "马六", 95007: "杨七", 95008: "刘八", 95008: "孙九", 95010: "陈十"}
# 生成学生成绩
student_result = []
for i in range(len(dic_student_info)):
temp_result = []
for j in range(3):
temp_result.append(random.randint(50,100))
# 添加到student_result中
student_result.append(temp_result)
# 打印生成的成绩
print(student_result)
# 生成总分的list
total_result = []
for i in student_result:
total_result.append(sum(i))
# 把总分倒叙排列
total_result.sort(reverse=True)
print(total_result)
# 组合存储结构
total_student_result = {}
# 获得学生信息的key
student_sno = list(dic_student_info)
# 遍历
index = 0
for i in student_sno:
temp_total = {}
temp_total["姓名"] = dic_student_info[i]
temp_total["明细"] = list(student_result)[index]
temp_total["总分"] = sum(list(student_result)[index])
temp_total["名次"] = total_result.index(sum((student_result)[index])) + 1
total_student_result[i] = temp_total
index += 1
for i in total_student_result:
print(i, ":", total_student_result[i])
# 打印一张成绩倒叙排名表【名次,学号,姓名,语文,数学,英语,总分,均分】
print("\n \n ###########################成绩统计表##############################")
print("名次 学号 姓名 语文 数学 英语 总分 均分")
print("=====================================================================")
for i in range(len(dic_student_info)):
for j in total_student_result:
if total_student_result[j]["名次"] == i + 1:
print(i+1, end="\t \t")
print(j, end="\t \t")
print(total_student_result[j]["姓名"], end="\t \t")
print(total_student_result[j]["明细"][0], end="\t \t")
print(total_student_result[j]["明细"][1], end="\t \t")
print(total_student_result[j]["明细"][2], end="\t \t")
print(total_student_result[j]["总分"], end="\t \t")
print("%.2f" % (total_student_result[j]["总分"]/3))
break
else:continue
print("=====================================================================")
执行结果:
C:\python\python.exe C:/python/demo/file3.py
[[77, 57, 61], [64, 77, 65], [88, 88, 83], [95, 75, 100], [57, 79, 88], [59, 90, 90], [88, 68, 80], [59, 79, 89], [58, 55, 73]]
[270, 259, 239, 236, 227, 224, 206, 195, 186]
95001 : {'姓名': '王一', '明细': [77, 57, 61], '总分': 195, '名次': 8}
95002 : {'姓名': '胡二', '明细': [64, 77, 65], '总分': 206, '名次': 7}
95003 : {'姓名': '张三', '明细': [88, 88, 83], '总分': 259, '名次': 2}
95004 : {'姓名': '李四', '明细': [95, 75, 100], '总分': 270, '名次': 1}
95005 : {'姓名': '赵五', '明细': [57, 79, 88], '总分': 224, '名次': 6}
95006 : {'姓名': '马六', '明细': [59, 90, 90], '总分': 239, '名次': 3}
95007 : {'姓名': '杨七', '明细': [88, 68, 80], '总分': 236, '名次': 4}
95008 : {'姓名': '孙九', '明细': [59, 79, 89], '总分': 227, '名次': 5}
95010 : {'姓名': '陈十', '明细': [58, 55, 73], '总分': 186, '名次': 9}
###########################成绩统计表##############################
名次 学号 姓名 语文 数学 英语 总分 均分
=====================================================================
1 95004 李四 95 75 100 270 90.00
2 95003 张三 88 88 83 259 86.33
3 95006 马六 59 90 90 239 79.67
4 95007 杨七 88 68 80 236 78.67
5 95008 孙九 59 79 89 227 75.67
6 95005 赵五 57 79 88 224 74.67
7 95002 胡二 64 77 65 206 68.67
8 95001 王一 77 57 61 195 65.00
9 95010 陈十 58 55 73 186 62.00
Process finished with exit code 0
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python3字典排序 2019-07-24
- python 嵌套字典取值增强版 2019-07-24
- 案例 — 使用bs4 爬取猫眼电影热榜 2019-07-24
- Python:字典的高级知识 2019-07-24
- python 基础学习笔记(4)--字典 和 集合 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash