hiddenWords = ['hello', 'hi', 'surfing']
print("Would you like to enter a new list of words or end the game? L/E?")
decision = input()
if decision == 'L':
print('Enter a new list of words')
newString = input()
newList = newString.split()
hiddenWords.extend(newList)
j = random.randint(0, len(hiddenWords) - 1)
secretWord = hiddenWords[j]
exit(0)
如何将用户的输入永久添加到hiddenWords列表中,以便下次打开应用程序时,用户输入的单词已扩展到hiddenWords列表?
感谢。 本准则是代码主体的一部分。
答案 0 :(得分:2)
写作时
hiddenWords = ['hello', 'hi', 'surfing']
每次程序运行时,您都将变量hiddenWords
定义为['hello', 'hi', 'surfing']
。
因此,无论您在此之后延伸,每次代码运行上面的行时,它都将重新定义为该值。
您实际需要的是使用数据库(如SQLite)来存储值,以便您可以随时检索它们。 此外,您可以将数据保存在文件中并每次都读取,这是一种更简单的方法。
答案 1 :(得分:1)
当程序退出时,所有变量都会丢失,因为变量只会在内存中退出。为了在程序执行期间保存修改(每次运行脚本时),都需要将数据保存到磁盘上,即:将其写入文件。 Pickle确实是最简单的解决方案。
答案 2 :(得分:0)
我喜欢json。这将是一个可能的解决方案:
import json
words = []
try:
f = open("words.txt", "r")
words = json.loads(f.read())
f.close()
except:
pass
print("list:")
for word in words:
print(word)
print("enter a word to add it to the list or return to exit")
add = raw_input() # for python3 you need to use input()
if add:
words.append(add)
try:
f = open("words.txt", "w")
f.write(json.dumps(words, indent=2))
f.close()
print("added " + add)
except:
print("failed to write file")
如果您想一次添加多个单词,请使用此功能。
import json
words = []
try:
f = open("words.txt", "r")
words = json.loads(f.read())
f.close()
except:
pass
print("list:")
for word in words:
print(word)
save = False
while True:
print("enter a word to add it to the list or return to exit")
add = raw_input() # for python3 you need to use input()
if add:
words.append(add)
print("added " + add)
save = True
else:
break
if save:
try:
f = open("words.txt", "w")
f.write(json.dumps(words, indent=2))
f.close()
except:
print("failed to write file")