此功能将从.txt文件中搜索列表中的字谜,我希望能够检查字谜并返回我输入的单词的所有字谜,如果不是字谜,当我执行此操作时,它将返回输入在下面的代码中,它会遍历for循环,然后忽略我的第一个if语句,然后直接转到我的else语句。我怎样才能解决这个问题?
def find_in_dict():
input_word = input("Enter input string)")
sorted_word = ''.join(sorted(input_word.strip()))
a_word = ''.join((input_word.strip()))
word_file = open("filename", "r")
word_list = {}
for text in word_file:
simple_text = ''.join(sorted(text.strip()))
word_list.update({text.strip(): simple_text})
alist = []
for key, val in word_list.items():
if val == sorted_word:
alist.append(key)
return alist
else:
return "No words can be formed from:" + a_word
最佳答案
您正在if和else分支中创建return
语句,这将破坏for(因为在函数内调用的return
会精确地执行该操作,中断执行并返回值),所以,请勿这样做,只是问单词是否相等,最后检查是否没有出现(空列表)
for text in word_file:
simple_text = ''.join(sorted(text.strip()))
word_list.update({text.strip(): simple_text})
alist = []
for key, val in word_list.items():
if val == sorted_word:
alist.append(key)
if alist == []: print("No words can be formed from: " + a_word)
关于python - 字谜代码中的错误:python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46983056/