我是python的新手,正在研究一些程序以了解它。
我正在做一个回文程序,该程序从文件中获取输入并打印出回文词。这是我到目前为止的代码

def isPalindrome(word):
    if len(word) < 1:
        return True
    else:
        if word[0] == word[-1]:
            return isPalindrome(word[1:-1])
        else:
            return False

def fileInput(filename):
    file = open(filename,'r')
    fileContent = file.readlines()
    if(isPalindrome(fileContent)):
        print(fileContent)
    else:
        print("No palindromes found")
    file.close()


这是文件

moom
mam
madam
dog
cat
bat


我得到没有发现回文的输出。

最佳答案

文件的内容将作为列表读取,因此fileContent将最终显示为:

fileContent = file.readlines()
fileContent => ["moon\n", "mam\n", "madam\n", "dog\n", "cat\n", "bat\n"]


您可以通过以下方法解决此问题:

def fileInput(filename):
    palindromes = False
    for line in open(filename):
        if isPalindrome(line.strip()):
             palindromes = True
             print(line.strip(), " is a palindrome.")

    return "palindromes found in {}".format(filename) if palindromes else "no palindromes found."


注意:添加了palindromes标志是为了返回最后的“回文[未找到]”语句

10-07 13:22