0

我在 python 中有一个 if/else 语句,当它转到 else 语句时我什么也不想做。

我正在阅读一个单词列表,找到回文(例如'abba')并将它们打印出来。它当前打印出整个 words 列表,我知道 is_palindrome 函数工作正常。

def first(word):
    return word[0]

def last(word):
    return word[-1]

def middle(word):
    return word[1:-1]


def is_palindrome(word):
    #print(word)
    if len(word) >1:
        if first(word) == last(word):
            #print(word)
            #print(middle(word))
            return is_palindrome(middle(word))
        else:
            return False
    else:
        return True


try:
    words = open("/usr/share/dict/words","r")

    for line in words:
        line.strip()
        #print line
        if is_palindrome(line) == True:
            print(line)
    else
    words.close()
except:
    print("File open FAILED")

我很感激你能给我的任何见解。谢谢。

4

1 回答 1

9

'line.strip()' 本身不会改变行。这应该行得通。

for line in words:
    line = line.strip()
    if is_palindrome(line) == True:
        print(line)

words.close()
于 2013-05-24T06:51:06.917 回答