为了背景,这是一个有关宠物小精灵的问答机器人,我想尝试制作一个,但我的代码只适用于列表中的第一个单词(简单地说,这是从Bulbasaur开始的所有宠物小精灵的列表)。用户以下划线填空的格式输入已知字母和已知字母的位置(例如Bulbasaur可以是'_ _ l _ a s a _ _',没有空格)。用户还会输入已知字母数,供程序稍后使用。它读取列表,将其放入数组中,然后提取与输入单词长度相匹配的所有名称。然后开始比较每个字母和每个输入的字母以查找匹配项,如果匹配的字母(数量)等于给定的输入数字,则显示“the pokemon is:”和宠物小精灵名称。问题在于它仅适用于一个宠物小精灵,而其他宠物小精灵似乎无法工作。我将在下面发布代码,并希望得到任何帮助 :)
此外,如果需要列表,我可以以某种方式添加(超过500行)
poke = input("Letters and spaces given: ")
pokelen = input("Number of Letters given:")
print(pokelen)
pokelen = int(pokelen)
############################################
fid = open('pokemon.txt','r')
f = fid.readlines()
g = []
for i in f:
i = i.replace('\n', '')
g.append(i)
fid.close()
candidates = []
ticker = 0
while ticker != len(g):
if len(g[ticker]) == len(poke):
candidates.append(g[ticker])
ticker +=1
print(candidates)
############################################
start = []
end = []
ticker1 = 0
ticker2 = 0
done = 0
while done == 0:
while ticker1 != len(candidates):
if done == 1:
break
word = candidates[ticker1]
tick = 0
length = len(word)
a = 0
for i in word:
start.append(i)
tick += 1
tick = 0
for i in poke:
end.append(i)
tick += 1
while length != ticker2:
if start[ticker2] == end[ticker2]:
a += 1
ticker2 += 1
if a == pokelen:
print("The Pokemon is:",word)
break
ticker1 += 1
done = 1
print(done)
print(a)
############################################
^..l.asa..$
- Barmar