如何更进一步了解递归+调试程序新法——python

本文介绍了新工具pysnooper在Python调试中的应用,通过一个斐波那契数列的递归实现例子,展示了如何利用pysnooper轻松查看变量状态和程序执行过程,从而简化递归程序的调试工作。
摘要由CSDN通过智能技术生成
  1. 最近新出了个工具:pysnooper
  2. 做啥用呢?你调试的时候是否常使用debug来查看变量状态,是否常使用print来打印输出,检查你的结果是否正确?
  3. OK,有了这东东,不用了,只要调用它就可以了,试着了解下斐波那契数列递归实现的过程吧,直接上代码和结果大家自己琢磨:
from __future__ import print_function
import pysnooper
@pysnooper.snoop('file.log')
def fib_rec(n):
    if n <= 1:
        f = n
    else:
        f = fib_rec(n-1) + fib_rec(n-2)
    return f

num = 12
print('{0:5}==>{1:10d}'.format('fib('+str(num)+')', fib_rec(num)))
  1. 结果:
Starting var:.. n = 12
17:58:21.626000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 11
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 10
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 9
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 8
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 7
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 6
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 5
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 4
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.642000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.642000 call         4 def fib_rec(n):
17:58:21.642000 line         5     if n <= 1:
17:58:21.658000 line         6         f = n
New var:....... f = 1
17:58:21.658000 line         9     return f
17:58:21.658000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.658000 call         4 def fib_rec(n):
17:58:21.658000 line         5     if n <= 1:
17:58:21.658000 line         6         f = n
New var:....... f = 0
17:58:21.658000 line         9     return f
17:58:21.658000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.658000 line         9     return f
17:58:21.658000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.658000 call         4 def fib_rec(n):
17:58:21.658000 line         5     if n <= 1:
17:58:21.658000 line         6         f = n
New var:....... f = 1
17:58:21.658000 line         9     return f
17:58:21.658000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.658000 line         9     return f
17:58:21.658000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
17:58:21.658000 call         4 def fib_rec(n):
17:58:21.658000 line         5     if n <= 1:
17:58:21.658000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.658000 call         4 def fib_rec(n):
17:58:21.658000 line         5     if n <= 1:
17:58:21.658000 line         6         f = n
New var:....... f = 1
17:58:21.658000 line         9     return f
17:58:21.658000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.658000 call         4 def fib_rec(n):
17:58:21.658000 line         5     if n <= 1:
17:58:21.658000 line         6         f = n
New var:....... f = 0
17:58:21.673000 line         9     return f
17:58:21.673000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.673000 line         9     return f
17:58:21.673000 return       9     return f
Return value:.. 1
New var:....... f = 3
17:58:21.673000 line         9     return f
17:58:21.673000 return       9     return f
Return value:.. 3
Starting var:.. n = 3
17:58:21.673000 call         4 def fib_rec(n):
17:58:21.673000 line         5     if n <= 1:
17:58:21.673000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.673000 call         4 def fib_rec(n):
17:58:21.673000 line         5     if n <= 1:
17:58:21.673000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.673000 call         4 def fib_rec(n):
17:58:21.673000 line         5     if n <= 1:
17:58:21.673000 line         6         f = n
New var:....... f = 1
17:58:21.673000 line         9     return f
17:58:21.673000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.673000 call         4 def fib_rec(n):
17:58:21.673000 line         5     if n <= 1:
17:58:21.673000 line         6         f = n
New var:....... f = 0
17:58:21.673000 line         9     return f
17:58:21.673000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.673000 line         9     return f
17:58:21.673000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.673000 call         4 def fib_rec(n):
17:58:21.673000 line         5     if n <= 1:
17:58:21.673000 line         6         f = n
New var:....... f = 1
17:58:21.689000 line         9     return f
17:58:21.689000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.689000 line         9     return f
17:58:21.689000 return       9     return f
Return value:.. 2
New var:....... f = 5
17:58:21.689000 line         9     return f
17:58:21.689000 return       9     return f
Return value:.. 5
Starting var:.. n = 4
17:58:21.689000 call         4 def fib_rec(n):
17:58:21.689000 line         5     if n <= 1:
17:58:21.689000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.689000 call         4 def fib_rec(n):
17:58:21.689000 line         5     if n <= 1:
17:58:21.689000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.689000 call         4 def fib_rec(n):
17:58:21.689000 line         5     if n <= 1:
17:58:21.689000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.689000 call         4 def fib_rec(n):
17:58:21.689000 line         5     if n <= 1:
17:58:21.689000 line         6         f = n
New var:....... f = 1
17:58:21.689000 line         9     return f
17:58:21.689000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.689000 call         4 def fib_rec(n):
17:58:21.689000 line         5     if n <= 1:
17:58:21.689000 line         6         f = n
New var:....... f = 0
17:58:21.689000 line         9     return f
17:58:21.689000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.689000 line         9     return f
17:58:21.689000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.689000 call         4 def fib_rec(n):
17:58:21.689000 line         5     if n <= 1:
17:58:21.704000 line         6         f = n
New var:....... f = 1
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
17:58:21.704000 call         4 def fib_rec(n):
17:58:21.704000 line         5     if n <= 1:
17:58:21.704000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.704000 call         4 def fib_rec(n):
17:58:21.704000 line         5     if n <= 1:
17:58:21.704000 line         6         f = n
New var:....... f = 1
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.704000 call         4 def fib_rec(n):
17:58:21.704000 line         5     if n <= 1:
17:58:21.704000 line         6         f = n
New var:....... f = 0
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 1
New var:....... f = 3
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 3
New var:....... f = 8
17:58:21.704000 line         9     return f
17:58:21.704000 return       9     return f
Return value:.. 8
Starting var:.. n = 5
17:58:21.704000 call         4 def fib_rec(n):
17:58:21.704000 line         5     if n <= 1:
17:58:21.704000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 4
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.720000 line         5     if n <= 1:
17:58:21.720000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.720000 line         5     if n <= 1:
17:58:21.720000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.720000 line         5     if n <= 1:
17:58:21.720000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.720000 line         5     if n <= 1:
17:58:21.720000 line         6         f = n
New var:....... f = 1
17:58:21.720000 line         9     return f
17:58:21.720000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.720000 line         5     if n <= 1:
17:58:21.720000 line         6         f = n
New var:....... f = 0
17:58:21.720000 line         9     return f
17:58:21.720000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.720000 line         9     return f
17:58:21.720000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.720000 line         5     if n <= 1:
17:58:21.720000 line         6         f = n
New var:....... f = 1
17:58:21.720000 line         9     return f
17:58:21.720000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.720000 line         9     return f
17:58:21.720000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
17:58:21.720000 call         4 def fib_rec(n):
17:58:21.736000 line         5     if n <= 1:
17:58:21.736000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.736000 call         4 def fib_rec(n):
17:58:21.736000 line         5     if n <= 1:
17:58:21.736000 line         6         f = n
New var:....... f = 1
17:58:21.736000 line         9     return f
17:58:21.736000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.736000 call         4 def fib_rec(n):
17:58:21.736000 line         5     if n <= 1:
17:58:21.736000 line         6         f = n
New var:....... f = 0
17:58:21.736000 line         9     return f
17:58:21.736000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.736000 line         9     return f
17:58:21.736000 return       9     return f
Return value:.. 1
New var:....... f = 3
17:58:21.736000 line         9     return f
17:58:21.736000 return       9     return f
Return value:.. 3
Starting var:.. n = 3
17:58:21.736000 call         4 def fib_rec(n):
17:58:21.736000 line         5     if n <= 1:
17:58:21.736000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.736000 call         4 def fib_rec(n):
17:58:21.736000 line         5     if n <= 1:
17:58:21.736000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.736000 call         4 def fib_rec(n):
17:58:21.736000 line         5     if n <= 1:
17:58:21.736000 line         6         f = n
New var:....... f = 1
17:58:21.736000 line         9     return f
17:58:21.736000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.751000 call         4 def fib_rec(n):
17:58:21.751000 line         5     if n <= 1:
17:58:21.751000 line         6         f = n
New var:....... f = 0
17:58:21.751000 line         9     return f
17:58:21.751000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.751000 line         9     return f
17:58:21.751000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.751000 call         4 def fib_rec(n):
17:58:21.751000 line         5     if n <= 1:
17:58:21.751000 line         6         f = n
New var:....... f = 1
17:58:21.751000 line         9     return f
17:58:21.751000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.751000 line         9     return f
17:58:21.751000 return       9     return f
Return value:.. 2
New var:....... f = 5
17:58:21.751000 line         9     return f
17:58:21.751000 return       9     return f
Return value:.. 5
New var:....... f = 13
17:58:21.751000 line         9     return f
17:58:21.751000 return       9     return f
Return value:.. 13
Starting var:.. n = 6
17:58:21.751000 call         4 def fib_rec(n):
17:58:21.751000 line         5     if n <= 1:
17:58:21.751000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 5
17:58:21.751000 call         4 def fib_rec(n):
17:58:21.751000 line         5     if n <= 1:
17:58:21.751000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 4
17:58:21.751000 call         4 def fib_rec(n):
17:58:21.751000 line         5     if n <= 1:
17:58:21.751000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.751000 call         4 def fib_rec(n):
17:58:21.751000 line         5     if n <= 1:
17:58:21.767000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.767000 call         4 def fib_rec(n):
17:58:21.767000 line         5     if n <= 1:
17:58:21.767000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.767000 call         4 def fib_rec(n):
17:58:21.767000 line         5     if n <= 1:
17:58:21.767000 line         6         f = n
New var:....... f = 1
17:58:21.767000 line         9     return f
17:58:21.767000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.767000 call         4 def fib_rec(n):
17:58:21.767000 line         5     if n <= 1:
17:58:21.767000 line         6         f = n
New var:....... f = 0
17:58:21.767000 line         9     return f
17:58:21.767000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.767000 line         9     return f
17:58:21.767000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.767000 call         4 def fib_rec(n):
17:58:21.767000 line         5     if n <= 1:
17:58:21.767000 line         6         f = n
New var:....... f = 1
17:58:21.767000 line         9     return f
17:58:21.767000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.767000 line         9     return f
17:58:21.767000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
17:58:21.767000 call         4 def fib_rec(n):
17:58:21.767000 line         5     if n <= 1:
17:58:21.767000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.767000 call         4 def fib_rec(n):
17:58:21.767000 line         5     if n <= 1:
17:58:21.767000 line         6         f = n
New var:....... f = 1
17:58:21.783000 line         9     return f
17:58:21.783000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.783000 call         4 def fib_rec(n):
17:58:21.783000 line         5     if n <= 1:
17:58:21.783000 line         6         f = n
New var:....... f = 0
17:58:21.783000 line         9     return f
17:58:21.783000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.783000 line         9     return f
17:58:21.783000 return       9     return f
Return value:.. 1
New var:....... f = 3
17:58:21.783000 line         9     return f
17:58:21.783000 return       9     return f
Return value:.. 3
Starting var:.. n = 3
17:58:21.783000 call         4 def fib_rec(n):
17:58:21.783000 line         5     if n <= 1:
17:58:21.783000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.783000 call         4 def fib_rec(n):
17:58:21.783000 line         5     if n <= 1:
17:58:21.783000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.783000 call         4 def fib_rec(n):
17:58:21.783000 line         5     if n <= 1:
17:58:21.783000 line         6         f = n
New var:....... f = 1
17:58:21.783000 line         9     return f
17:58:21.783000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.783000 call         4 def fib_rec(n):
17:58:21.783000 line         5     if n <= 1:
17:58:21.783000 line         6         f = n
New var:....... f = 0
17:58:21.783000 line         9     return f
17:58:21.783000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.798000 line         9     return f
17:58:21.798000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.798000 call         4 def fib_rec(n):
17:58:21.798000 line         5     if n <= 1:
17:58:21.798000 line         6         f = n
New var:....... f = 1
17:58:21.798000 line         9     return f
17:58:21.798000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.798000 line         9     return f
17:58:21.798000 return       9     return f
Return value:.. 2
New var:....... f = 5
17:58:21.798000 line         9     return f
17:58:21.798000 return       9     return f
Return value:.. 5
Starting var:.. n = 4
17:58:21.798000 call         4 def fib_rec(n):
17:58:21.798000 line         5     if n <= 1:
17:58:21.798000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.798000 call         4 def fib_rec(n):
17:58:21.798000 line         5     if n <= 1:
17:58:21.798000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.798000 call         4 def fib_rec(n):
17:58:21.798000 line         5     if n <= 1:
17:58:21.798000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.798000 call         4 def fib_rec(n):
17:58:21.798000 line         5     if n <= 1:
17:58:21.798000 line         6         f = n
New var:....... f = 1
17:58:21.798000 line         9     return f
17:58:21.798000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.798000 call         4 def fib_rec(n):
17:58:21.798000 line         5     if n <= 1:
17:58:21.798000 line         6         f = n
New var:....... f = 0
17:58:21.798000 line         9     return f
17:58:21.798000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.814000 call         4 def fib_rec(n):
17:58:21.814000 line         5     if n <= 1:
17:58:21.814000 line         6         f = n
New var:....... f = 1
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
17:58:21.814000 call         4 def fib_rec(n):
17:58:21.814000 line         5     if n <= 1:
17:58:21.814000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.814000 call         4 def fib_rec(n):
17:58:21.814000 line         5     if n <= 1:
17:58:21.814000 line         6         f = n
New var:....... f = 1
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.814000 call         4 def fib_rec(n):
17:58:21.814000 line         5     if n <= 1:
17:58:21.814000 line         6         f = n
New var:....... f = 0
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 1
New var:....... f = 3
17:58:21.814000 line         9     return f
17:58:21.814000 return       9     return f
Return value:.. 3
New var:....... f = 8
17:58:21.829000 line         9     return f
17:58:21.829000 return       9     return f
Return value:.. 8
New var:....... f = 21
17:58:21.829000 line         9     return f
17:58:21.829000 return       9     return f
Return value:.. 21
Starting var:.. n = 7
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 6
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 5
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 4
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         6         f = n
New var:....... f = 1
17:58:21.829000 line         9     return f
17:58:21.829000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.829000 call         4 def fib_rec(n):
17:58:21.829000 line         5     if n <= 1:
17:58:21.829000 line         6         f = n
New var:....... f = 0
17:58:21.829000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.845000 call         4 def fib_rec(n):
17:58:21.845000 line         5     if n <= 1:
17:58:21.845000 line         6         f = n
New var:....... f = 1
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
17:58:21.845000 call         4 def fib_rec(n):
17:58:21.845000 line         5     if n <= 1:
17:58:21.845000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.845000 call         4 def fib_rec(n):
17:58:21.845000 line         5     if n <= 1:
17:58:21.845000 line         6         f = n
New var:....... f = 1
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.845000 call         4 def fib_rec(n):
17:58:21.845000 line         5     if n <= 1:
17:58:21.845000 line         6         f = n
New var:....... f = 0
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 1
New var:....... f = 3
17:58:21.845000 line         9     return f
17:58:21.845000 return       9     return f
Return value:.. 3
Starting var:.. n = 3
17:58:21.861000 call         4 def fib_rec(n):
17:58:21.861000 line         5     if n <= 1:
17:58:21.861000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.861000 call         4 def fib_rec(n):
17:58:21.861000 line         5     if n <= 1:
17:58:21.861000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.861000 call         4 def fib_rec(n):
17:58:21.861000 line         5     if n <= 1:
17:58:21.861000 line         6         f = n
New var:....... f = 1
17:58:21.861000 line         9     return f
17:58:21.861000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.861000 call         4 def fib_rec(n):
17:58:21.861000 line         5     if n <= 1:
17:58:21.861000 line         6         f = n
New var:....... f = 0
17:58:21.861000 line         9     return f
17:58:21.861000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.861000 line         9     return f
17:58:21.861000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.861000 call         4 def fib_rec(n):
17:58:21.861000 line         5     if n <= 1:
17:58:21.861000 line         6         f = n
New var:....... f = 1
17:58:21.861000 line         9     return f
17:58:21.861000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.861000 line         9     return f
17:58:21.861000 return       9     return f
Return value:.. 2
New var:....... f = 5
17:58:21.861000 line         9     return f
17:58:21.861000 return       9     return f
Return value:.. 5
Starting var:.. n = 4
17:58:21.876000 call         4 def fib_rec(n):
17:58:21.876000 line         5     if n <= 1:
17:58:21.876000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 3
17:58:21.876000 call         4 def fib_rec(n):
17:58:21.876000 line         5     if n <= 1:
17:58:21.876000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 2
17:58:21.876000 call         4 def fib_rec(n):
17:58:21.876000 line         5     if n <= 1:
17:58:21.876000 line         8         f = fib_rec(n-1) + fib_rec(n-2)
Starting var:.. n = 1
17:58:21.876000 call         4 def fib_rec(n):
17:58:21.876000 line         5     if n <= 1:
17:58:21.876000 line         6         f = n
New var:....... f = 1
17:58:21.876000 line         9     return f
17:58:21.876000 return       9     return f
Return value:.. 1
Starting var:.. n = 0
17:58:21.876000 call         4 def fib_rec(n):
17:58:21.876000 line         5     if n <= 1:
17:58:21.876000 line         6         f = n
New var:....... f = 0
17:58:21.876000 line         9     return f
17:58:21.876000 return       9     return f
Return value:.. 0
New var:....... f = 1
17:58:21.876000 line         9     return f
17:58:21.876000 return       9     return f
Return value:.. 1
Starting var:.. n = 1
17:58:21.876000 call         4 def fib_rec(n):
17:58:21.876000 line         5     if n <= 1:
17:58:21.876000 line         6         f = n
New var:....... f = 1
17:58:21.876000 line         9     return f
17:58:21.876000 return       9     return f
Return value:.. 1
New var:....... f = 2
17:58:21.876000 line         9     return f
17:58:21.876000 return       9     return f
Return value:.. 2
Starting var:.. n = 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值