绝对新手的Python编程第7章挑战2

时间:2011-03-23 15:48:02

标签: python python-3.x pickle

我一直在尝试使用本书学习python,但是,我似乎仍然坚持这个挑战。

“2。改进Trivia Challenge游戏,使其在文件中保留一个高分列表。如果玩家列出了该列表,该程序应该记录玩家的名字和分数。使用腌制对象存储高分。”

我决定使用列表而不是字典,因为我认为我不能对字典分数进行排序。但是,要根据您的问题更新字典版本,当您加载字典时,请为其添加另一个变量,然后将该变量添加到原始字体。

所以它会是这样的:

首先我创建了一个空白列表来保存字典。

high_scores = []

然后运行一个单独的程序来更新分数。

new_score = {score: player}

f = open("high_Scores.txt", "rb")
score_list = high_scores
f.close()
score_list.append(new_score)
score_list = score_list[:10]
f = open("high_scores.txt", "wb")
pickle.dump(score_list, f)
f.close()

这只包含10个分数并将更新字典。我还没弄清楚如何排序 分数和阅读我不认为这本书可以做到这一点。 我正在考虑切换到列表或其他东西。我还没有真正开展过工作,所以我现在还不确定。如果你搞清楚了,请告诉我。

1 个答案:

答案 0 :(得分:0)

我不想为你做这一切,但这里有一些提示:

不需要字典,字典是无序的。使用2元组的排序列表:high_scores = [(score1, name1), (score2, name2), ...]。按相反顺序对列表进行排序:high_scores.sort(reverse=True)。使用list appendpop方法添加新条目并删除不再排在前十名的条目。