Python 你能告诉我什么';我的代码怎么了?
当我调用fib函数时,它不会返回任何内容。你能告诉我我做错了什么吗Python 你能告诉我什么';我的代码怎么了?,python,python-3.x,recursion,fibonacci,Python,Python 3.x,Recursion,Fibonacci,当我调用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
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
将fib(n-1,列表)
更改为返回fib(n-1,列表)
:
您的
if
子句不包含return
语句。@khelwood是对的,您需要将其更改为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