【问题标题】:Python Programming for the absolute beginner Chapter 7 Challenge 2绝对初学者的Python编程第7章挑战2
【发布时间】:2011-03-23 15:48:01
【问题描述】:

我一直在尝试使用这本书来学习 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 个分数,并将更新字典。还没想好怎么排序 分数和阅读我认为在本书的这一点上是不可能的。 我正在考虑切换到列表或其他东西。我还没有真正研究过它,所以我现在不确定。如果你弄清楚了,请告诉我。

【问题讨论】:

  • 请您自己先诚实地尝试一下,如果失败了,请返回您所拥有的,那么我们可以提供帮助。如果你不这样做,你根本就学不会。
  • 你在用 Python 表达的具体部分有什么困难?
  • 伪代码看起来不错。现在弄清楚如何将其放入 python 语法中。在我看来,那个困难的部分已经完成了
  • 泡菜的时候不要调用.txt文件。

标签: python python-3.x pickle


【解决方案1】:

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

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

【讨论】:

  • 感谢您的提示。我意识到字典不起作用,所以我开始摆弄列表。我想不出一种让列表起作用的方法,但你的提示真的很有帮助。真的很感激这个提示。谢谢!
猜你喜欢
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2015-06-29
  • 2021-05-30
相关资源
最近更新 更多