为什么';我的python回文检查算法是否有效?

为什么';我的python回文检查算法是否有效?,python,algorithm,recursion,Python,Algorithm,Recursion,所以我当时正在做,我觉得奇怪的是,我作为解决方案编写的这段代码不起作用: def is_palindrome(word): if len(word) <= 1: return True elif first(word) == last(word): is_palindrome(middle(word)) else: return False 您缺少一个返回值: def is_palindrome(word):

所以我当时正在做,我觉得奇怪的是,我作为解决方案编写的这段代码不起作用:

def is_palindrome(word):
    if len(word) <= 1:
        return True
    elif first(word) == last(word):
        is_palindrome(middle(word))
    else:
        return False

您缺少一个
返回值

def is_palindrome(word):
    if len(word) <= 1:
        return True
    elif first(word) == last(word):
        return is_palindrome(middle(word))  # <--
    else:
        return False
def是回文(word):

如果len(word)您缺少返回的

def is_palindrome(word):
    if len(word) <= 1:
        return True
    elif first(word) == last(word):
        return is_palindrome(middle(word))  # <--
    else:
        return False
def是回文(word):

如果len(word)添加
返回

return is_palindrome(middle(word))

添加
return

return is_palindrome(middle(word))

我认为您缺少返回函数第5行中的方法

return is_palindrome(middle(word))
应该在那里而不是

 is_palindrome(middle(word))

我认为您缺少返回函数第5行中的方法

return is_palindrome(middle(word))
应该在那里而不是

 is_palindrome(middle(word))

您在调用is_回文之前缺少“return”您在调用is之前缺少“return”_palindrome@user3182422我已经解释了为什么它不起作用。解释不清楚吗?我不明白的是,为什么没有添加“return”就不能工作。看起来更像是你给了我一个解决办法,仅此而已@user3182422您需要返回,以便向调用者实际报告函数的结果。在没有显式返回的情况下,函数默认返回
None
,就这么简单。你可以在
True
False
前面问同样的关于
return
的问题,答案是一样的。如果你不明白为什么需要
return
,你可能需要读一读递归的内容。@user3182422我已经解释了为什么它不起作用。解释不清楚吗?我不明白的是,为什么没有添加“return”就不能工作。看起来更像是你给了我一个解决办法,仅此而已@user3182422您需要返回,以便向调用者实际报告函数的结果。在没有显式返回的情况下,函数默认返回
None
,就这么简单。你可以在
True
False
前面问同样的关于
return
的问题,答案是一样的。如果你不明白为什么需要
return
,你可能想读一读递归。。