递归或迭代函数(Python)

1 python iteration recursion function

我无法确定以下函数是迭代还是递归,

我认为它是递归的,因为它会重复,但由于它有一个while循环,我有疑虑,

def function(n):
    while((n!=1) and (n!=0)):
        return function(n-1) + function(n-2)
    return n
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 5

它是自称的递归.递归(是一个单词)并不意味着不允许"标准"迭代.

顺便说一下.在您的情况下,没有进一步的迭代.while循环基本上与简单的if语句相同,因为您在第一个循环中立即返回.所以你可以像这样写:

def function(n):
    if (n != 1) and (n != 0):
        return function(n - 1) + function(n - 2)
    return n
Run Code Online (Sandbox Code Playgroud)