【发布时间】:2015-02-09 12:08:07
【问题描述】:
我的代码设置为仅允许将特定用户的 3 个分数保存在文本文件中。但我正在努力完成这项工作。 pname 是人名的变量,他们正确的数量存储在变量正确的下面。我还试图添加他们使用变量 etime 所花费的时间。我有基础,但无法修复错误或使其工作,因为我试图将其从另一个答案调整为另一个问题。 谢谢你。
SCORE_FILENAME = "Class1.txt"
MAX_SCORES = 3
try: scoresFile = open(SCORE_FILENAME, "r+")
except IOError: scoresFile = open(SCORE_FILENAME, "w+") # File not exists
actualScoresTable = []
for line in scoresFile:
tmp = line.strip().replace("\n","").split(",")
actualScoresTable.append({
"name": tmp[0],
"scores": tmp[1:],
})
scoresFile.close()
new = True
for index, record in enumerate( actualScoresTable ):
if record["name"] == pname:
actualScoresTable[index]["scores"].append(correct)
if len(record["scores"]) > MAX_SCORES:
actualScoresTable[index]["scores"].pop(0) # OR del actualScoresTable[index]["scores"][0]
new = False
break
if new:
actualScoresTable.append({
"name": pname,
"scores": correct,
})
scoresFile = open(SCORE_FILENAME, "w+") # Truncating file (write all again)
for record in actualScoresTable:
scoresFile.write( "%s,%s\n" % (record["name"], ","(record["scores"])) )
scoresFile.close()
【问题讨论】:
-
我认为您的问题会从简化中受益。
-
确实如此,而且是我班上唯一一个这样做的人。和全国6%的一部分。我在挣扎。甚至我的老师也帮不了我,因为他们对 Python 也不太了解。那么有人可以帮忙吗?我只是想让它保存变量:pname、correct 和 etime(人名、他们正确的数量和花费的时间)所以我希望它看起来像这样:
-
姓名、分数、所用时间、分数、所用时间、分数、所用时间。它必须只有 3 分,因为这是整个任务的任务 3 的标准。我知道如何正常保存它们,因为我的旧解决方案是这样做的,但不是标准任务 3 要求的。谢谢。
-
抱歉,之前没有看到您的回复。当您回复某人的评论时,您需要在他们的用户名前使用
@来提醒他们;您会自动收到警报,因为这是您的问题。请参阅meta.stackoverflow.com/editing-help#comment-formatting 了解更多信息。无论如何,很多 人在这里问过这个问题,因此您可以通过 Google(或您选择的搜索引擎)在site:http://stackoverflow.com save last three scores text上进行搜索来获得一些有用的提示
标签: python python-3.x limiting