检查回文

时间:2014-10-23 19:32:04

标签: list-comprehension

    def palindrome(s):
        for i in range(0,len(s)-1):
            if s[i] == s[i][::-1]:
                return s[i]
words = ['foof','boom','aanaa','nana']
print(palindrome(words))

我试图用一个巨大的文字来检查回文,但除此之外,我只找到了一个与我的功能相符的回文。我决定用一些微不足道的东西来测试它,但它只关注' foof'作为回文。我的猜测,for循环有一些根本性的错误,但我不能,因为我的世界,弄清楚问题是什么。

一个附带问题:我的第一篇文章是我编写代码并使用代码示例按钮使其格式化为代码,但有些人必须编辑我的帖子,因此代码中会有这些语法颜色。我怎么能自己做,所以没有其他人可以编辑我的帖子? :)

干杯

1 个答案:

答案 0 :(得分:1)

由于你的return语句,该函数会在找到第一个回文后立即停止执行。

你需要在你的函数和每个回文中创建一个新的列表。

def palindrome(s):
    l = []
    for i in range(0,len(s)-1):
        if s[i] == s[i][::-1]:
            l.append(s[i])
    return l

该函数应该返回一个回文列表,而不仅仅是第一个...