创建在Python中返回布尔值的回文函数

时间:2017-09-08 00:20:36

标签: python

我目前正在学习Python课程,目前正在努力完成我的一部分作业。

问题是要求我们构造一个检查字符串以查看它是否是回文的函数。我遇到的问题是,我的教练提供的一项测试是针对回文"从不奇怪甚至是#34;其中包含空格。这些空格导致我的功能失败,因为它不会只使用短语中的字母。

我目前的代码是:

def is_palindrome(phrase):

    return phrase == phrase[::-1]

她正在测试代码:

assert is_palindrome("Never odd or even")

任何帮助将不胜感激!感谢。

2 个答案:

答案 0 :(得分:1)

我认为这就是你想要的: - is_palindrome("Never odd or even".replace(" ", "").lower())

如果您想更改功能,那么您的功能如下:

def is_palindrome(phrase):
    phrase=phrase.replace(" ","").lower()
    return phrase == phrase[::-1]   

您可以使用is_palindrome("Never odd or even")

来调用它

答案 1 :(得分:0)

首先删除空格,然后使用递归,仅检查第一个和最后一个字符是否相同,在内部部分递归。

def is_palindrome(x):
    x = "".join(x.split()).lower()
    if (len(x) <= 1): return True
    if x[0] != x[-1]: return False
    return is_palindrome(x[1:-1])