我正在尝试构建一个简单的游戏,但我无法更新列表并重新打印任何想法?
我从txt文件中提取一些细节并将它们放入列表中。我打印列表,这是有效的。
我使用.replace进行更新,但是当我打印列表时,它只打印列表中的最后一项。这已正确更新。我怎样才能得到它以便再次打印已更新的整个列表?
任何想法???
这是我的代码:
print("Can you solve the puzzle? \nBelow are some words in code form can you crack the code and figue out\nthe words?\n")
words = open ("words.txt", "r")
lines_words = words.readlines()
for line_words in lines_words:
print (line_words)
words.close()
print("\nHere are some clues to help you!\n")
clues = open ("clues.txt", "r")
print (clues.read())
clues.close()
###
print ("\nThis is what we have so far....")
# define the function
def replace_all(text, dic):
for i, j in dic.items():
text = text.replace(i, j)
return text
# dictionary with key:values.
reps = {'#':'A', '*':'M', '%':'N'}
txt = replace_all(line_words, reps)
print (txt)
答案 0 :(得分:0)
你犯了两个错误:
您在line_words
循环中重复使用 for
名称:
for line_words in lines_words:
print (line_words)
依次用列表中的每行替换旧值(列表)。在最后一次迭代之后,意味着line_words
已被最后一行替换。
在循环中使用的其他名称:
for line in lines_words:
print (line)
您需要使用另一个循环来替换行中的文本:
for line in line_words:
txt = replace_all(line, reps)
print (txt)
这会在迭代中模糊您的单词以进行打印,而不会更改line_words
中包含的原始字符串。