无法保留文字游戏的结果

时间:2017-06-09 12:09:57

标签: python persistence

我创造了一个非常简单的文字游戏。您可以一次单词列出一个单词,如果您知道单词可以继续使用下一个单词,或者如果您不知道单词,则可以将其保存到新单词列表中。 只要它正在运行,脚本就可以正常运行,但是一旦我退出游戏,我就会丢失所有已保存的单词,新单词列表将变为空。 我试图使用泡菜,但它没有成功。这是我的代码:

my_list = ['cat', 'dog', 'duck', 'tiger', 'puppy']
new_word = []

def get_item(a_list):
    ind = 0
    while ind < len(my_list):
        confirm_list = ['y', 'Y']
        confirm_list2 = ['n', 'N']
        confirm_list3 = ['y', 'Y', 'n', 'N']
        confirm = input('Type Y to continue or N to quit: ')
        if confirm in confirm_list:
            print(my_list[ind])
            ind += 1
            confirm_add = input('Type Y to add this word to New_Word list: ')
            if confirm_add in confirm_list:
                new_word.append(my_list[ind - 1])
                for item in new_word:
                    print(item)
            if ind == len(my_list):
                print('This is the last item.')
        if confirm in confirm_list2:
            print('Thanks for playing. See you again.')
            break
        if confirm not in confirm_list3:
            print('Please type Y or N in small or capital letters.')

get_item(my_list)

2 个答案:

答案 0 :(得分:0)

您需要将项目保存到磁盘并在重新打开程序时重新加载它。

Try a tutorial

答案 1 :(得分:0)

你在python中的对象(例如你的列表)都是临时的,它们存在于内存中,一旦你退出Python或创建它们的Python程序它们就会消失。

所以请改用 Pickle

>>> your_list = ["cat","dog"]
>>>
>>> import pickle
>>> 
>>> with open('your_list.pkl', 'wb') as f:
...   pickle.dump(your_list, f)
... 

然后退出程序并再次打开它。现在输入

>>>import pickle
>>>with open('your_list.pkl','rb') as f:
...    your_newlist = pickle.load(f)
...
>>>your_newlist
["cat","dog"]

为您提供更清晰的信息

你有一个功能def get_item(a_list):
在函数结束时使用

return list_you_need_to_store

然后使用返回的列表按照我给出的代码示例。