今天咱来聊聊咋整个得分榜出来。作为一个喜欢倒腾各种小玩意儿的博主,这事儿我必须得好好记录一下,分享给大伙儿。
我琢磨着,这得分榜不就是个排名嘛肯定得有个地方存数据?没错,我得把那些个分数、名字啥的都给存起来。咋存?
我想想,直接用个列表(List)得。列表里头套字典(Dictionary),每个字典存一个人的信息,像这样:
[ {'name': '张三', 'score': 90}, {'name': '李四', 'score': 85}, ... ]
有数据,接下来就是咋把这些数据按分数从高到低排个序。这事儿简单,Python里头有个sort()函数,直接就能搞定。不过这里头还有个小细节,就是你得告诉它按照哪个字段排序,这里当然是'score'字段。我用一个叫做lambda的小玩意,来告诉它咋排:
*(key=lambda x: x['score'], reverse=True)
reverse=True
的意思就是从大到小排,要不然就反过来。
排好序,接下来干当然是把这玩意儿展示出来。咋展示?
一开始我想,要不直接print()打印出来算?那也太丑!不行,我得整个好看点儿的。
我想到用表格!对,就用表格!
这里我用个小技巧,直接用字符串拼接的方式来构建表格,简单粗暴,效果还不错:
print("排名\t姓名\t分数")
for i, item in enumerate(data):
print(f"{i+1}\t{item['name']}\t{item['score']}")

- 先整个表头,“排名”,“姓名”,“分数”,中间用
\t
,也就是Tab键隔开。 - 然后用一个for循环,把排好序的数据一条一条打印出来。
enumerate()
这个函数挺好用,它能同时给出序号和数据,省得我自己去数。f"{i+1}
这个是格式化字符串,把序号填进去,因为序号是从0开始的,所以要加1。
总结
这么一套下来,一个简单的得分榜就出来。这只是个最最基本的版本,以后还能加各种功能,比如从文件里读取数据,或者把数据保存到文件里,甚至还能搞个图形界面,让它更好看。不过今天就先到这儿,以后再慢慢折腾。
这回实践让我对数据的存储、排序和展示有更直观的理解。下次再遇到类似的需求,我就能更快地搞定!
还没有评论,来说两句吧...