缺少1个必需的位置参数:'string'

时间:2017-11-19 22:37:23

标签: python-3.x

我正在尝试学习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'

如果有人能指引我到我错的地方,我将不胜感激。

编辑:我应该提一下,我的字典文件每行包含一个单词,因此不需要编写考虑空格的代码,因为永远不会有句子。单词中也没有大写字母。

1 个答案:

答案 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']