首页 > 解决方案 > 你能告诉我我的代码有什么问题吗?

问题描述

当我调用我的 fib 函数时,它不会返回任何内容。你能告诉我我做错了什么吗?

def fib(n, List = []):
    if n > 0:
        if len(List) == 0 or len(List) == 1:
            List.append(1)
        else:
            List.append(List[len(List) - 2] + List[len(List) - 1])
        fib(n - 1, List)
    else:
        return List

l = fib(5)
print(l)  # >> None

标签: pythonpython-3.xrecursionfibonacci

解决方案


更改fib(n - 1, List)return fib(n - 1, List)

def fib(n, List = []):
    if n > 0:
        if len(List) == 0 or len(List) == 1:
            List.append(1)
        else:
            List.append(List[len(List) - 2] + List[len(List) - 1])
        return fib(n - 1, List)
    else:
        return List

推荐阅读