2016-10-04 4 views
-2

Добрый вечер люди,Простой питон: функция палиндром (возвращает истину, если палиндром, ложь, если не палиндром)

я работаю над заданием для курса в Python. Наша задача - написать функцию, возвращающую True, если строка, которую она принимает, является палиндром, иначе он возвращает False. Следующий код сообщает False на консоль для nonpalindromes, но ничего не сообщает о консоли, когда это палиндром. Я предполагаю, что он теряется в рекурсивном вызове или во втором заявлении elif, но я действительно не знаю, где это происходит. Любая помощь очень ценится :) Вот код:

def middle(word): 
    return word[1:-1] 

def last(word): 
    return word[-1] 

def first(word): 
    return word[0] 

def isPalindrome(word): 
    if(len(word)<1):       
     print("You entered a blank word!") 
    elif(len(word)==1): 
     return True 
    elif(first(word)==last(word)): 
     if(middle(word)==''): 
      return True 
     isPalindrome(middle(word)) 
    else: 
     return False 
+0

Что нужно принять за вход? Я предполагаю список, это правильно? –

+0

Ну, в качестве замены всегда есть классическое слово «слово» (слово) », если оно не должно быть рекурсивным. – Carcigenicate

ответ

0

Есть намного более простые способы проверки наличия палиндрома с использованием Python. Это в стороне, для вашего нынешнего подхода вам нужно возвращения выхода рекурсивного вызова, иначе ваша функция будет возвращениеNone в этой отрасли: elif

return isPalindrome(middle(word)) 

Вы можете, например, , просто поменяйте строку и проверить, если обращенная и исходная строка равна:

word == word[::-1] 
0
def isPalindrome(word): 
    return word == word[::-1] 

word[::-1] отменяет word. Это проверяет, является ли word в обратном направлении таким же, как word.