【发布时间】:2020-03-25 22:03:06
【问题描述】:
我正在开发一款游戏,我需要为其添加排行榜。我编写了一个允许用户添加高分、查看高分和删除所有高分的代码。现在我需要按照从高到低的顺序对所有分数进行排序。这是我目前的代码 [注意:我知道这不是最好的菜单,但我稍后会更改它]:
choice = input(str("Would you like to add a high score to the leader board?: "))
if choice == "y":
user1 = input(str("Enter username 1: "))
hs1 = input(str("Enter high score: "))
user2 = input(str("Enter username 2: "))
hs2 = input(str("Enter high score: "))
data1 = user1 + ": " + hs1
data2 = user2 + ": " + hs2
with open("leaderboard.txt","a") as file:
file.write(data1)
file.write("\n")
file.write(data2)
file.write("\n")
print("Data added.")
elif choice == "n":
final_list = []
with open("leaderboard.txt","r") as file:
first_list = file.readlines()
for i in first_list:
final_list.append(i.strip())
print("Leader board")
print("-------------")
for count in range(0,len(final_list)):
print(final_list[count])
else:
with open("leaderboard.txt","w") as file:
file.write(" ")
print("leader board cleared.")
我希望在订购这样的东西后显示排行榜:
1. James F: 32
2. Harris W: 18
3. Courtney J: 12
感谢您的阅读!
【问题讨论】:
-
我会考虑将文件读入 python 数据结构,对其进行排序,然后重新写入文件。不过,我可能过于复杂了。此外,请考虑更好地保护擦除功能,因为现在任何拼写错误(即大写 Y 而不是 y)都会导致排行榜被清除。
-
我可以编写一个更强大的菜单 我如何编写这个菜单仅供我自己参考。你是说喜欢使用二维数组吗?
-
@EvanDilkes,我在考虑逐行读取文件。将每一行存储到一个列表中,并在
": "上拆分值。这应该给你一个元组列表。然后看到这个对元组列表进行排序:geeksforgeeks.org/…,然后用新的排序列表覆盖文件。 -
我找到了另一个解决方案,但我会研究你所说的,谢谢你的贡献!