Цель заключалась в том, чтобы ввести определенные входные данные str, которые имеют одинаковые буквы для разных слов. Пока я сузил процент точности. Я не могу решить несколько проблем.
Ссылка на файл: http://www.gutenberg.org/files/3201/files/
fln=open('CROSSWD.TXT')
def uses_only(allow,word1,count,count_2):
y=0 #I've tried assigning line before loop as line=fln.readlines() does'nt work
for line in fln:
word=line.strip() # somehow the line is stripped of white spaces here or there
for letter in line: # Does'nt work for in word
x=count
z=count_2
if letter in allow:
count+=1
elif letter not in allow: # break loop for unwanted letters
count=0
count_2+=1
break
if x==len(word) and len(allow)==len(word): # runs if the letters match
y+=x/len(word)
word1+=word+','
return True,word1,int(y) #returns matching words & word count
def run():
allow=input('Enter the only letters the word must contain : ') # input from user
word1=''
count=0
count_2=0
print(uses_only(allow,word1,count,count_2))
run()
Основная проблема, с которой я столкнулся, находится в
for letter in line:
Если я использую
for letter in word: **# What's making the loop to break?**
, он вернет пустую строку, хотя они должны делать то же самое, немного сжато в
word=line.strip()
Также любезно помогите мне сделать совпадение более точным
Ввод: есть
текущий выход:
(True, 'ate,eat,eta,tae,tat,tea,tee,', 7)
Результат дает слова с совпадающей строкой, взятые в качестве входных данных для той же длины и количества совпадающих слов.