python-14 递归函数和函数调用原理
函数调用
函数调用执行流程
递归Recursion
斐波那契数列
RecursionError
Ipython 栈空间3000 ,python 栈空间1000
sys.getrecursionLimit()
pro = 1
def fn1(n): # 3 ; 2 1
if n == 1 : #
return 1 # 1
global pro
pro *= n # 3 2
return fn1(n-1) # 2 1
def fn1(n):
if n == 0 or n == 1 :
return 1
return n*fn1(n-1)
def factorial(n):
if n <= 2 :
return n
return n * factorial(n-1)
------------------------
n = 5
f = 1
for i in range(n, 0, -1):
f *= i
print(f)
-----------------------
def factorial(n, f=1):
f *= n
if n == 1 :
return f
return factorial(n-1, f)
def peach(days=10):
if days == 1 :
return 1
return 2 * (peach(days-1) + 1)