如何在python中更改和重选值

2024-10-06 11:30:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的程序中添加一个函数,该函数在运行时保持用户名和高分。该函数应该加载以前玩游戏时的高分,并且能够将用户/分数元组附加到列表分数。据我所知,下面的代码应该可以工作,但由于某些原因,它只显示当前运行程序时的用户/分数集。如何编辑此代码以完成此操作。很抱歉我是新来的,我只是想了解。。。在

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)

Tags: 函数代码用户name程序open分数pickle
1条回答
网友
1楼 · 发布于 2024-10-06 11:30:51

你在这里交换了你的行动。在

您的代码创建一个空的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

相关问题 更多 >