如何使用递归

时间:2014-03-25 09:02:09

标签: python function recursion

def reverse(str_):
        tot = ""
    if len(str_)==0: 
        return tot
    else:
        tot += str_[-1] 
        return reverse(str_[:-1])


print(reverse("chicken"))

该函数应该返回旧字符串的反向。我无法弄清楚它为什么不起作用。

谢谢,

2 个答案:

答案 0 :(得分:0)

您不能在函数的每次递归中更改tot,因为您将其设置为"""""每次递归。试试吧。

def reverse(s):
    if s == "":
        return s
    else:
        return reverse(s[1:]) + s[0]


print(reverse("chicken"))

答案 1 :(得分:0)

这里不需要比较""对于S.如果s是""则如果不是s 将返回true。以下代码可以正常工作。

def reverse(s):
    return s if not s else reverse(s[1:])+s[0]

如果你只想扭转刺痛并且不想使用内置方法那么你可以使用s [-1 :: - 1]