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

在代码运行之间保留变量的数据

卢翔宇
2023-03-14
问题内容

对于一个学校项目,我正在用Python制作子手游戏。现在,我的代码从字典中选择一个单词,如下所示:

WordList = ["cat", "hat", "jump", "house", "orange", "brick", "horse", "word"]
word = WordList[random.randint(0, len(WordList) - 1)]

现在,必须在运行之前在代码中设置单词列表,但是我添加了在运行时将单词添加到列表中的功能:

if command == "add":
    while True:
        print("type a word to add to the dictionary")
        print("type /b to go back to game")
        add = raw_input("word: ")

        if add != "/b":
            WordList = WordList + [add]

            print add, "added!"
        else:
            print("returning to game")
            break

但是,一旦退出代码,显然不会保存添加的单词,因此,我将不得不手动将所有单词添加到列表中,或者每次代码启动后都将一堆单词添加到列表中。所以我想知道是否有一种简单的方法可以在代码完成后保存变量,以便WordList在下次代码启动时保留添加的单词。我用来编写python的程序是Jetbrains
PyCharm,如果有区别的话。对于任何非最佳代码,我深表歉意。


问题答案:

只需对要保留的数据进行腌制。由于用例不需要非常复杂的数据存储,因此酸洗是一个很好的选择。一个小例子:

import pickle

word_list = ["cat", "hat", "jump", "house", "orange", "brick", "horse", "word"]

# do your thing here, like
word_list.append("monty")

# open a pickle file
filename = 'mypickle.pk'

with open(filename, 'wb') as fi:
    # dump your data into the file
    pickle.dump(word_list, fi)

稍后当您需要再次使用它时,只需加载它:

# load your data back to memory when you need it
with open(filename, 'rb') as fi:
    word_list = pickle.load(fi)

-
您现在具有数据持久性。在这里阅读更多。一些重要的指示:

  1. 请注意'b'何时使用open()打开文件。泡菜通常以二进制格式存储,因此您必须以二进制模式打开文件。
  2. 我使用了with上下文管理器。这样可以确保在我完成对文件的所有工作后,安全关闭该文件。


 类似资料:
  • 我在学硒。我使用的是Python 2.7。幻影JS-2.1.1。 背景-脚本试图将数据输入控件。该脚本能够捕获控件。但是,较早执行的数据将被保留。 截图 null

  • 我已经导出了变量,以确保即使在shell的新实例中,变量也会被持久化,但它不起作用。。。我不知道该怎么做。我做了大量的研究和测试,没有得出结论。 Dockerfile: 确保每次运行

  • 问题内容: 我是PHP新手(仍然),并且继续学习。 我经常必须检索某个变量并访问其属性。 我希望一次检索一次,然后在需要时在同一文件中但在不同块中使用它 但是我怀疑不能在块之间共享,因为它不是全局的。通常的做法是什么? 问题答案: 您在php代码块中放置了太多含义。 这不是全球性的事情。 这些块属于同一PHP脚本。这只是输出HTML的一种简洁方法,仅此而已。您可以用回显HTML代替它,不会有丝毫差

  • 问题内容: 我正在尝试捕获表单的“提交”按钮,如果表单已提交,页面将刷新,并显示一些隐藏的字段。我想捕获表单是否已经提交过,以及是否在重新加载时提交,我想取消隐藏隐藏字段。我试图使用全局变量来实现此目的,但是我无法使其正常运行。 这是我尝试过的: 关于此代码有什么问题的任何建议? 问题答案: 由于HTTP是无状态的,因此每次加载页面时,它将使用JavaScript中设置的初始值。您不能在JS中设置

  • 问题内容: 因此,在Java中,我们可以执行如何测量函数执行所需的时间 但是如何在python中完成呢?要测量代码行之间的时间开始和结束时间?这样做的事情: 问题答案: 如果要测量CPU时间,可以用于Python 3.3及更高版本: 第一个电话打开计时器,第二个电话告诉您已经过去了几秒钟。 还有一个功能,但是自Python 3.3起不推荐使用 ,并将在Python 3.8中删除。 有更好的性能分析

  • 我们将设置为 1 小时,如下所示(以前设置为 72H) 使用以下Kafka命令行工具,我们将kafka 设置为< code>1H。我们的目标是清除topic - 中比1H旧的数据,因此我们使用了以下命令: 此外 两个命令都运行无误。 但问题是关于Kafka的数据,它比1H更老,仍然存在! 实际上,没有从主题分区中删除任何数据。我们有HDP Kafka集群版本1.0x和ambari 我们不明白为什么