案例:
某编程竞赛系统,对参赛选手编程解题进行计时,选手完成题目后,把该选手解题用时记录到字典中,以便赛后按选手名查询成绩。(答题用时越短,成绩越优)
{'LiLei':(2,43),'HanMeimei':(5,52),'jim':(1,39)...}
比赛结束后,需按排名顺序依次打印选手成绩,如何实现?
from time import time
from random import randint
from collections import OrderedDict #导入标准库中OrderedDict模块,模块功能是按照程序先加入的键值对进行排序
d = OrderedDict()
players = list('abcdefg') #建立选手成员列表
start = time() #记录比赛开始时间
for i in range(7): #循环比赛选手的人数
input('完成考试')
p = players.pop(randint(0, 6-i)) #当选手点击考试完成后从选手成员列表随机删除最后一个该答题完毕的成员
end = time() #记录考试完成时间
d[p] = (i+1, end - start) #选手的姓名作为键,元组记录名次和用时时间作为值添加进字典中
print()
print('-'*20)
for k in d:
print(k, d[k]) #选手姓名:(名次,用时)格式化输出
本文介绍了一种在编程竞赛中记录选手解题时间和生成排名的方法。通过使用OrderedDict,可以确保选手的成绩按照比赛完成的顺序正确排序。文章详细解释了如何随机选择选手并记录他们的完成时间和最终排名。
452

被折叠的 条评论
为什么被折叠?



