Python中的回文函数

-2 投票
1 回答
2227 浏览
提问于 2025-05-01 05:11

嘿,我的作业是:

回文是指一个词从前往后读和从后往前读是一样的,比如说
“doggod”就是一个回文。我的任务是逐行扫描一个文件,找出里面的回文,并
返回一个包含找到的回文的列表。

这是我目前写的代码:

def find_palidrome(word):
    if len(word) < 1:
        return True
    else:
        if word[0] == word[-1]:
            return find_palidrome(word[1:-1])
        else:
            return False
def fileInput(alice.txt):
    f = open(alice.txt,'r')
    line = f.readline().strip()
    while line != '':
        if(find_palidrome(line)):
            print(line)
        else:
            print("No palindromes found")
        line = f.readline().strip()
    file.close()

但是它一直不工作,老是说有语法错误,我不知道哪里出问题了。
有人能帮帮我吗!!谢谢!

暂无标签

1 个回答

1

这是一个更简单的方法来查找一个单词是否是回文:

def is_palindrome(word):
    return word == word[::-1]

然后读取文件的方法是:

def check_file(file_name):
    with open(file_name, 'r') as f:
        for line in f:
            if is_palindrome(line):
                print(line)
            else:
                print("No palindromes found")

if __name__ == '__main__':
    f_name = input('Enter a file path')
    check_file(f_name)

正如其他人所指出的,问题在于没有把文件名作为字符串传入。在我发布的代码中,文件名默认是通过 input() 函数以字符串的形式输入的。把所有内容放在 if __name__ == '__main__' 这个块里,可以让你在不运行整个脚本的情况下,把这些函数导入到其他程序中。

撰写回答