需要帮助查看python中的递归

问题描述 投票:-1回答:2

我仍在尝试了解递归。我无法正确地解决它。

我正在尝试创建一个小的函数,如果输入的单词是回文,则返回true。

这是我到目前为止的内容,但我不断收到一条错误消息,内容为'UnboundLocalError:分配前已引用局部变量'isPalindrome''

在我的头爆炸之前,有人能够引导我解决这个错误。谢谢

def is_palindrome(word):
    if len(word) < 1:
        return True
    else:
        if word[0].lower() == word[-1].lower():
            return isPalindrome(word[1:-1])
        else:
            return False

possible_palindrome = input("Enter a word/phrase to check: ")
if is_palindrome(possible_palindrome):
    print(possible_palindrome, "is a palindrome")
else:
    print(possible_palindrome, "is not a palindrome")
python recursion palindrome
2个回答
0
投票

您的函数称为is_palindrome,您正在尝试调用名为isPalindrome的函数。将后者更改为前者。


0
投票

这只是一个小错误。您已在函数的返回块中拼写了is_palindrome函数。您实际上已经使用过isPalindrome,但是应该为is_palindrome。我已经对您的代码进行了适当的更改。如果正确,请勾选我的答案。

def is_palindrome(word):
if len(word) < 1:
    return True
else:
    if word[0].lower() == word[-1].lower():
        return is_palindrome(word[1:-1])
    else:
        return False

possible_palindrome = input("Enter a word/phrase to check: ")
if is_palindrome(possible_palindrome):
    print(possible_palindrome, "is a palindrome") 
else:
    print(possible_palindrome, "is not a palindrome")

检查程序中的测试用例'kanak'。输出是-

Enter a word/phrase to check: kanak
kanak is a palindrome
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.