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

请原谅这个标题用词不当!


对于我的计算机科学 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()


尚方宝剑之说
浏览 251回答 2
2回答

九州编程

指针,将问题分解为一系列步骤并继续阅读:字符串操作函数 split() 和子字符串,python 数据构造元组(一种将值保持在一起的方法)该排序功能。&nbsp;Python 数据结构 - 见元组&nbsp;排序函数想想也许:以与您编写的格式相同的格式逐行读取您的高分文件从相关行中获取相关文本和数字将每个(用户名,分数)作为元组附加到列表中将列表反向排序打印列表中的前 5 个项目代码片段:scores.append((user_name,score)) #core is of type listi = 0while i < limit:&nbsp; &nbsp; item = sorted_list[i]&nbsp; &nbsp; print ("first item of tupple: {} second item:{}".format(item[0],item[1]))&nbsp; &nbsp; i+=1提示:不要忘记在排序之前将分数从 string 转换为 int。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python