Python 在递归Fibonacci程序中添加计数器
我正在使用一个基本的Python MIT免费课件,我遇到了一个递归练习的问题。原始程序接受一个整数,并使用递归提供其斐波那契函数。本书为程序提供了脚本,但随后的练习要求输入一种方法,让程序识别在计算fib(n)的过程中执行fib(2)的次数`` 代码如下:Python 在递归Fibonacci程序中添加计数器,python,recursion,fibonacci,Python,Recursion,Fibonacci,我正在使用一个基本的Python MIT免费课件,我遇到了一个递归练习的问题。原始程序接受一个整数,并使用递归提供其斐波那契函数。本书为程序提供了脚本,但随后的练习要求输入一种方法,让程序识别在计算fib(n)的过程中执行fib(2)的次数`` 代码如下: def fib(n): """Assumes n is int > 0 Returns Fibonacci Number of n""" if n ==
def fib(n):
"""Assumes n is int > 0
Returns Fibonacci Number of n"""
if n ==0 or n==1:
return n
else:
return fib(n-1) + fib(n-2)
def testfib(n):
for i in range(n+1):
print('fib of', i, 'is ', fib(i))
x=int(input('Enter a number: '))
print('Fibonacci of', x, 'is',fib(x))
print(testfib(x))
在另一个线程中给出了一个答案,我正在绞尽脑汁,想知道是否有人能解释一下,在下面的代码中,else部分的元组是如何作为变量名的?
参考:
逐行解释
f1, count1 = fib(n-1)
这里fib返回f1+f2,sum_counts
(见结尾),因此f1=f1+f2
和count1=sum_counts
f2, count2 = fib(n-2)
return f1 + f2, sum_counts
这里fib返回f1+f2,sum_计数
(见结尾),因此f2=f1+f2
和count2=sum_计数
f2, count2 = fib(n-2)
return f1 + f2, sum_counts
fib方法在这里返回2个值f1+f2,sum_counts
,所以我们必须用元组或2个变量解包2个值
在您的代码中,我们用2个变量解包值,下面是一个用元组解包值的示例
def test():
return 1, 2, 3, 4, 5
my_list = test()
for val in my_list:
print(val)
也许你对元组解包感到困惑。Python文档中对此进行了描述:
fib()。这样做被称为“元组解包”。@BurningKarl&martineau-谢谢你,这回答了我的问题,7u5h4r的回答提供了我所需要的清晰度。