继续遇到"字符串索引超出范围' Python中的错误

时间:2015-09-24 02:03:27

标签: python

我正在为一个介绍课程做作业,我需要确定一个字符串是否是回文。这部分代码遇到问题:

    def is_palindrome(letters): 
         if (len(letters))==0:
             return True
         elif len(letters)==1:
             return True
         elif (letters[end])==(letters[0]):
            return is_palindrome(letters[(letters[0+1]):(letters[len(letters)-1])])
         else:
            return False

2 个答案:

答案 0 :(得分:2)

您的代码几乎是正确的,但是在切换字符串时出错:

def is_palindrome(letters): 
    if (len(letters))==0:
        return True
    elif len(letters)==1:
        return True
    elif (letters[0])==(letters[-1]):       # index [-1] gives the last letter
        return is_palindrome(letters[1:-1]) # slice [1:-1] is the word without the first and last letter.
    else:
        return False

以上作品。

我建议您查看此帖子,详细说明切片的工作原理:Explain Python's slice notation

答案 1 :(得分:1)

请尝试以下代码:

def palindrome(text):
    if text == text[::-1]:
        print(text, 'is palindrome')
    else:
        print(text, 'is not palindrome')

palindrome('reser')
palindrome('reset')

str[::-1]将反转该字符串。有关详细信息,请尝试help(slice)