我仍在尝试了解递归。我无法正确地解决它。
我正在尝试创建一个小的函数,如果输入的单词是回文,则返回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")
您的函数称为is_palindrome
,您正在尝试调用名为isPalindrome
的函数。将后者更改为前者。
这只是一个小错误。您已在函数的返回块中拼写了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