Я ожидаю возвращения Истины, но получаю возвращение Нет.
Я добавил в код некоторые операторы print, чтобы помочь отладке. Он показывает, что оператор print ("Got True") выполнялся, поэтому я знаю, что код попал в правую ветвь кода непосредственно перед возвратом True, но по какой-то причине я получаю None. Однако «return False» отлично работает, когда я вставляю слово, которое не является палиндромом.
Спасибо за помощь.
def first(word):
return word[0]
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
def is_palindrome(word):
print(word)
if len(word) <= 1:
print("Got True")
return True
else:
print(len(word))
if first(word) == last(word):
is_palindrome(middle(word))
else:
print("Got False")
return False
print(is_palindrome('allen'))
print("\n")
print(is_palindrome('redivider'))
Выход:
allen
5
Got False
False
redivider
9
edivide
7
divid
5
ivi
3
v
Got True
None