Python 此斐波那契代码中的列表索引超出范围错误
如果我运行这个代码Python 此斐波那契代码中的列表索引超出范围错误,python,Python,如果我运行这个代码 def fib(n): if n == 1: return [1] if n == 2: return [1, 1] else: return fib(n - 1).append(fib(n - 1)[n - 1] + fib(n - 2)[n - 2]) print fib(3) 我收到一个错误,列表索引超出范围。您不能在返回中追加。此外,在append语句中出现了off by 1错误,导致索引超
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
else:
return fib(n - 1).append(fib(n - 1)[n - 1] + fib(n - 2)[n - 2])
print fib(3)
我收到一个错误,列表索引超出范围。您不能在
返回中追加。此外,在append
语句中出现了off by 1错误,导致索引超出范围错误。如果您将前面的答案存储在一个列表中,我称之为fiblist
,那么您可以附加到该列表中,然后返回它
此代码生成您想要的答案:
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
else:
fiblist = (fib(n - 1))
fiblist.append(fib(n - 1)[n - 2] + fib(n - 2)[n - 3])
return fiblist
print(fib(3))
您不能在返回中追加。此外,在append
语句中出现了off by 1错误,导致索引超出范围错误。如果您将前面的答案存储在一个列表中,我称之为fiblist
,那么您可以附加到该列表中,然后返回它
此代码生成您想要的答案:
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
else:
fiblist = (fib(n - 1))
fiblist.append(fib(n - 1)[n - 2] + fib(n - 2)[n - 3])
return fiblist
print(fib(3))
返回fib(…).append(…)
将返回None
,即使fib(…)
是有效列表。返回fib(…).append(…)
将返回None
,即使fib(…)
是有效列表。