这是递归的吗?

时间:2017-09-12 16:18:59

标签: python-3.x recursion

这里的第二次尝试,我只是想知道这是否被认为是递归函数。

该函数的目的是获取一个字符串和 如果第一个元素等于最后一个元素 然后将最后一个元素追加到列表中并且不返回任何内容, else调用istelf并从index [1]传递相同的字符串 最后将第一个元素附加到列表

我知道需要在if语句上进行错误检查。然而,我只是这样做试图让我的头围绕递归...努力说实话。

此外,我绝不会写一个这样的程序,如果它只是微不足道我只想检查我的理解是否正确到目前为止。

?????????.B0????????.jpg

再次感谢。

1 个答案:

答案 0 :(得分:2)

  

这是递归吗?

如果函数执行中的任何一点它自己调用,则认为是递归的。这在您的示例中发生,因此recursiveMessage确实是递归的。

  

那么更快的递归或迭代呢?

由于必须在每个递归调用的stack frame上创建新的call stack,递归通常会慢得多并占用更多空间。如果您知道您的递归函数需要多次运行,迭代是最好的路径。

作为一个有趣的旁注,许多编译器实际上通过将其转换为循环来优化递归函数。