我正在尝试学习Python并且一直在搜索可能与我有关的其他问题,以便了解我做错了什么错误。 我正在尝试使用以下代码找到回文:
def find_all_palindromes(string):
string = string.lower()
palindromes = []
words = open("dictionary.txt")
for word in words:
word = word.strip()
if string == word.lower()[::1]:
palindromes.append(word)
words.close
return palindromes
每当我尝试运行代码时出现以下错误:missing 1 required positional argument: 'string'
。
如果有人能指引我到我错的地方,我将不胜感激。
编辑:我应该提一下,我的字典文件每行包含一个单词,因此不需要编写考虑空格的代码,因为永远不会有句子。单词中也没有大写字母。
答案 0 :(得分:0)
文件dictionary.txt
包含:
Able was I ere I saw Elba
Never odd or even
并且调用find_all_palindromes('Never odd or even')
,返回的值为:
['Never odd or even']
这些回文来自Wikipedia。考虑到空间,这些不是回文。此外,函数find_all_palindromes
只匹配文件dictionary.txt
中的行与给定字符串,并返回包含多次出现的字符串的list
(保留大写,但可能不同)。< / p>
另一个例子是:
not a palindrome
Not a Palindrome
not A palindromE
使用此文件:
>>> find_all_palindromes('not a palindrome')
['not a palindrome', 'Not a Palindrome', 'not A palindromE']