当前位置: 首页 > 面试题库 >

用户分数保存程序

卓嘉良
2023-03-14
问题内容

我正在尝试制作一个程序,它将询问用户名,然后提出一系列问题。每次问题正确时都加一个点。我正在尝试使其将分数和用户名一起存储到文本文件中,以便在文本文件中看起来像这样:

Name    Score

因此,以约翰为例,如果他要获得4分,它将在文本文件中写为:

John    4

但是我想要这样,如果约翰要再次参加考试而不是两次让约翰参加:

John    4
John    6

我希望它读为:

John    4   6

与其重写名称和分数,不如写出tab,然后将分数与名称为John in的那一行写在同一行。

到目前为止,这是我的代码:

import random
name = input("Hello user, what is your name?")
count = (0)
score = (0)
while count != (8):
    count = count + (1)
    symbols = ['+', '-', '*']
    valueF = random.randint(1,10)
    valueS = random.randint(1,10)
    chosensymb = random.choice (symbols)
    question = input("What is %d %s %d ? :"%(valueF, chosensymb, valueS))
    answer = eval(str(valueF) + chosensymb + str(valueS))
    if question == str(answer):            
        score = score + (1)
        print ("Correct")
    else:
        print ("Incorrect")

print("%s, you have scored %d points"%(name,score))
filewrite = open("ScoreSheet.txt","a")
filewrite.write("\n%s\t%d"%(name,score))
filewrite.close()

我不知道该怎么做,我是python的新手,对不起,如果我犯了任何错误,谢谢!


问题答案:

好吧,首先,您可以将每个人的分数存储在字典中。让我们介绍一个scores对象:

scores = {}

它将名称作为键,将分数作为值。像那样:

scores = {'John': 2,
          'Mary': 5}

如果您引入了新玩家,我们将在上述字典中创建一个新元素,我们将其命名为'John',并带有一个得分0

scores['John'] = 0

然后,如果玩家猜对了,我们将增加玩家的得分:

scores['John'] += 1

+=如果您只想向对象添加一些内容,则可以使用运算符。这是一种简短的说法scores['John'] = scores['John'] + 1

然后魔术开始了!
Python中有一个名为的内置模块pickle,该模块可以将对象(如我们制作的字典-
scores)存储在文件中,然后将它们从文件中弹出,然后将它们还原!

有一个快速手动如何一起工作pickle。简而言之,您可以将分数保存到文件中,如下所示:

import pickle
pickle.dump(scores, open("scores.p", "wb"))

然后像这样加载它:

scores = pickle.load(open("scores.p", "rb"))

这并不是真正的最佳存储方式-
还有更多诸如json,csv,sqlite甚至手动读/写之类的东西,但您现在可以了:)



 类似资料:
  • 保存分数 保存分数。可供游戏场景使用。保存用户当前互动实例下的成就值。如果不是历史新值,也就是在minPoint和maxPoint之间的值就不要调saveScore了。 /** * Tida.queryScore 获取游戏分数后的回调函数数据 * @param {object} options 输入参数 * @param {number} options.value 分数 * @param

  • 这就是我想使用WebDriver执行的。 选中“保持用户登录”复选框登录站点 问题是当我关闭驱动程序并重新打开它时,我没有登录。 我的代码看起来像这样-

  • 我有一个有效的javascript测验。目的是保存用户的分数。 这就是我所拥有的。在测验(quiz.html)结束时,弹出一个警报,并显示用户的分数(这工作很好)。关闭警告框后,将出现一个新窗口complete.html(这也起作用)。 在我的complete.html中,我有以下代码。 但是,我尝试使用,但是分数没有出现在SPAN#quiztotalscore中。我错过什么了吗?我是否需要先将分

  • 问题内容: 大家好:)我有一个评分栏,它可以正常工作,但是当用户离开页面时,该评分不会保存。您如何保存用户评分? 这是代码 任何帮助,将不胜感激。 问题答案: 您可以为此使用 SharedPreferences 。 返回应用程序之前,请保存评级,然后从中检索评级并在评级栏中进行设置。 保存值 您可以 检索 类似 的值 其中 的myKey 是 键名 ,通过它可以识别值.. 编辑 像这样更改代码 而当

  • 我正在使用node.sdk、stormpath、express.js和passport.js为我的新网站制作一个用户帐户系统。所以我设置了一个自定义数据槽的帐户。我想知道,当他们注销时,我如何将新数据发布到这个自定义数据槽中,并在他们登录时检索它。我对使用node是新手,我不知道在他们登录时,我的代码应该放在哪里,也不知道如何访问“用户”帐户信息。据我所知,Passport.js正在处理身份验证,

  • 问题内容: 我是新手。我正在制作一个应用,其中您有15秒的得分,然后它会保存您的得分并启动另一个活动,在该活动中,我必须加载已保存的得分并显示该得分,而不是显示该文本视图,但是我不知道该怎么做。这是第一个代码: 这是在第一个之后开始的另一个: 编辑:我什至不确定它是否真的保存在第一个,所以请帮助我。 问题答案: 在StartActivity方法中覆盖的onFinish中,只需执行以下操作: 然后在