为了账号安全,请及时绑定邮箱和手机立即绑定

Python 将排行榜从最高分到最低分和前 5 名(外部文件)排序

Python 将排行榜从最高分到最低分和前 5 名(外部文件)排序

尚方宝剑之说 2021-09-02 19:37:44
请原谅这个标题用词不当!对于我的计算机科学 GCSE,我获得了一个 20 小时的项目。其中大部分已完成且功能齐全,但我正在努力完成最后一步。我这样做是为了让用户可以将他们的最终分数存储到一个外部文件中,并且该文件的内容会在游戏结束时打印出来。但是,我希望它仅打印前 5 名得分手,并将得分从最高到最低进行分类。每个位置旁边都有一个数字来显示他们在棋盘上的位置会很酷,但如果这很难做到,我可以跳过它。这是用于定义排行榜的代码部分:    def leaderboard():  print ("\n")  print ("⬇ Check out the leaderboard ⬇") #LEADERBOARD SECTION  f = open('H_Highscore.txt', 'r')  leaderboard = [line.replace('\n','') for line in f.readlines()]  for i in leaderboard:      print(i)  f.close()  time.sleep(10)  sys.exit()这是写入排行榜的代码:user = str(input("Enter a name to save your highscore: "))                    file = open ("H_Highscore.txt", "a")                    file.write("\n")                    file.write(user)                    file.write(",")                    file.write(str(score)) # (int(x)) can not be written                    file.write("pts")                    file.write("\n")                    file.close()                    time.sleep(0.5)                    leaderboard()                    sys.exit()
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

指针,将问题分解为一系列步骤并继续阅读:

想想也许:

  • 以与您编写的格式相同的格式逐行读取您的高分文件

  • 从相关行中获取相关文本和数字

  • 将每个(用户名,分数)作为元组附加到列表中

  • 将列表反向排序

  • 打印列表中的前 5 个项目

代码片段:

scores.append((user_name,score)) #core is of type list

i = 0

while i < limit:

    item = sorted_list[i]

    print ("first item of tupple: {} second item:{}".format(item[0],item[1]))

    i+=1

提示:不要忘记在排序之前将分数从 string 转换为 int。


查看完整回答
反对 回复 2021-09-02
  • 2 回答
  • 0 关注
  • 250 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信