我正在尝试向我的程序添加一个功能,该功能可以在所有运行时保留用户名和高分。该函数应该加载以前玩游戏时的高分,并能够将用户/分数元组附加到列表分数。根据我的理解,下面的代码应该可以工作,但由于某种原因,它只会显示程序运行当前时间的用户/分数集。我如何编辑此代码以完成此操作。抱歉,我是新来的,我只是想了解...
import pickle
score = 12
def scor_func(score):
scores = []
name = input("Please enter your name: ")
entry = (name, score)
scores.append(entry)
f = open("Triviascores.bat", "wb")
pickle.dump(scores, f)
f.close()
f = open("Triviascores.bat", "rb")
scores = pickle.load(f)
f.close()
return scores
scores = scor_func(score)
print(scores)
最佳答案
你在这里交换了你的操作。
您的代码创建一个空的 scores
列表,添加一个条目,然后保存该列表。之后您再次加载该文件,因此您只加载您刚创建的新列表。
您需要先加载以前的分数,附加新分数,然后保存数据:
def scor_func(score):
name = input("Please enter your name: ")
entry = (name, score)
scorefile = "Triviascores.bat"
if os.path.exists(scorefile):
with open(scorefile, 'rb') as sf:
scores = pickle.load(sf)
else:
scores = []
scores.append(entry)
with open(scoresfile, "wb") as sf:
pickle.dump(scores, sf)
return scores
关于python - 如何更改和重新选择 python 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990545/