|
一、递归函数的意义
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
意义:通过一定的“基”,并按照某种规则达到重复的效果。
二、递归函数的应用
def story(): # 第一步 print('从前有座山') # 第三步,第五步... story() # 第四步,第六步... story() # 第二步 # 但是会报错,每次调用函数都会开辟独立的空间,第二次调用函数的时候第一个调用函数的空间还没释放掉,第一次函数还没结束。 ''' RecursionError: maximum recursion depth exceeded while calling a Python object 递归错误,超过了递归的最大深度,并不是真的报错了,是对内存的保护。 '''
alex多大? n=1 age(1)=age(2)+2=age(n+1)+2 alex比egon大两岁, egon多大? n=2 age(2)=age(3)+2=age(n+2)+2 egon比wusir大两岁, wusir多大 n=3 age(3)=age(4)+2=age(n+2)+2 wusir比金老板大两岁, 金老板今年40了 n=4 age(4)=40 递归——先递再归, 当n=4时,age(4)=40 当n<4时,age(n)=age(n+1)+2 def age(n): if n==4: return 40 elif n>0 and n<4: return age(n+1)+2 print(age(1))
查看递归的方法:
先递后归
def age(1): if 1==4: return 40 elif 1>0 and 1<4: return 44+2 print(age(1)) def age(2): if 2==4: return 40 elif 2>0 and 2<4: return 42+2 print(age(2)) def age(3): if 3==4: return 40 elif 3>0 and 3<4: return 40+2 print(age(3)) def age(4): if 4==4: return 40 elif 4>0 and 4<4: return age(3+1)+2 print(age(4))
注意事项:
(1)主要写递归函数,必须有结束条件
(2)不要只看return就认为已经返回了,要看返回操作是在递归到第几层的时候发生的,然后返回给了谁。
(3)如果不是返回到最外层函数,调用者就接收不到,需要再分析,看如何把结果返回回来。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-20 01:45
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社