请原谅这个标题用词不当!对于我的计算机科学 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个赞
指针,将问题分解为一系列步骤并继续阅读:
字符串操作函数 split() 和子字符串,
python 数据构造元组(一种将值保持在一起的方法)
该排序功能。 Python 数据结构 - 见元组 排序函数
想想也许:
以与您编写的格式相同的格式逐行读取您的高分文件
从相关行中获取相关文本和数字
将每个(用户名,分数)作为元组附加到列表中
将列表反向排序
打印列表中的前 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。
添加回答
举报
0/150
提交
取消