我的代码到目前为止......
f = open("words.txt","r")
words = f.read()
f = open("solved.txt","r")
solved = f.read()
f = open("clues.txt","r")
clues = f.read()
def importclues():
global clues
global words
z=0
for z in clues:
words.replace(clues[z[1]],clues[z[0]])
print(words)
所以我试图从clues.txt文件中的每一行获取第二个字符
A#
M*
N%
在words.txt文件中找到该字符
#+/084&"
#3*#%#+
8%203:
,1$&
!-*%
.#7&33&
#*#71%
&-&641'2
#))85
9&330*
然后将其替换为clues.txt文件中每行的第一个字母,以便用户更容易猜出剩余的符号/字母配对。
不幸的是,我收到以下错误消息
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
importclues()
File "/Users/Alastair/Desktop/CA.py", line 70, in importclues
words.replace(clues[z[1]],clues[z[0]])
IndexError: string index out of range
非常感谢任何帮助:)
-Alastair
答案 0 :(得分:1)
f.read()
可能不适合在这里使用...使用f.readlines()
,您会得到一个数组,每行都是一个元素。
f.read()
你正在阅读一大串字符 - 在换行符时没有分开!
线索是一个字符串,因此for z in clues
会将一个字符放入z
。
f = open("words.txt","r")
words = f.read()
f = open("solved.txt","r")
solved = f.read()
f = open("clues.txt","r")
clues = f.readlines()
def importclues():
global clues
global words
for line in clues:
words.replace(line[1], line[0])
print(words)
这是未经测试但应解决问题。 CHanges:read()
- &gt; readlines()
和for循环
此代码没有错误检查 - 您可以放弃line
len(line) < 3
(包括换行符)
答案 1 :(得分:0)
您应该使用:
clues = f.readlines()
它将占用每一行并转换为数组的索引。所以:
words.replace(z[1], z[0])
请你向前迈进一步。