首页 > 解决方案 > 在python中为递归函数返回True

问题描述

有人可以告诉我简单递归函数的逻辑有什么问题,如下:

def回文(字符串):

if len(string)<=1:
    return True
elif string[0]== string[-1]:
    palindrome(string[1:-1])
else:
    return False

False 部分可以正常工作,例如:palindrome('good') 函数正确返回 False。但是如果它输入了一个回文,例如:palindrome('level'),该函数什么也不返回。

标签: recursionreturnlogic

解决方案


如评论中所述,递归调用函数时不会返回该函数,但是应该返回,否则原始函数调用将返回None。

解决方案:

def palindrome (string):
    if len(string)<=1:
        return True
    elif string[0].lower() == string[-1].lower():
        return palindrome(string[1:-1])
    else:
        return False

我还会添加“较低”,因为大写不相关


推荐阅读