Skip to main content
 首页 » 编程设计

python之递归函数 : Inversing word

2025年05月04日23leader

我正在尝试制作一个使用递归反转字符串的简单函数。

这是我试过的:

    def inverse(ch): 
        if ch=='' : 
            return '' 
        else: 
            return ch[len(ch)]+inverse(ch[1:len(ch)-1]) 
 
    print inverse('hello') 

这就是我得到的:

line 13, in inverse return ch[len(ch)]+inverse(ch[1:len(ch)-1]) IndexError: string index out of range

请您参考如下方法:

您正在按字符串的长度索引字符串,但请记住索引是从零开始的,因此您必须在长度减去 1 处进行切片,这是您可以安全使用的最大索引。

不过,您可以选择忽略长度,方法是使用 [-1] 索引最后一项:

def inverse(ch): 
    if ch=='' : 
        return '' 
    else: 
        return ch[-1]+inverse(ch[:-1]) 
 
print inverse('hello') 
# olleh 

而且您可能还想记住,使用 [::-1] 进行切片会提供与递归函数相同的结果。