递归的表现形式(此列不是递归只是说明递归的表现形式)
#递归的表现形式(此列不是递归只是说明递归的表现形式)def f1(): return "递归的表现形式" #f1函数里的功能,返回"递归的表现形式"字符串def f2(): r = f1() #执行f1函数 return r #返回f1函数的结果def f3(): r = f2() #执行f2函数 return r #返回f2函数的结果def f4(): r = f3() #执行f3函数 return r #返回f3函数的结果adc = f4() #执行f4函数print(adc)#打印出 递归的表现形式#递归就是嵌套式请求,向第一层请求,程序会自动一层一层的将请求信息传递到底层,然后将结果在一层一层的传递回来
初识递归 程序本身自己调用自己称之为递归,类似于俄罗斯套娃,体现在代码中:用户执行最外(N)层函数,最外侧调用N-1层函数,N-1层函数调用N-2层函数...
递归最简单原理 程序本身自己调用自己称之为递归,类似于俄罗斯套娃,体现在代码中:用户执行函数,而函数里又在执行函数本身,相当于写了一个死循环函数,一般都需要用一个判断来决定递归深度
#!/usr/bin/env python# -*- coding:utf-8 -*-def f(a): #自定义函数 f(a) #再次执行本身函数f(1) #执行函数,触发函数循环
用递归写一个斐波那契数列,0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987
斐波那契数列每前两位相加等于第3位
#!/usr/bin/env python# -*- coding:utf-8 -*-#用递归写一个斐波那契数列def f1(i, a, b): #自定义函数接收参数传值 print(a) #打印每次递归的a if i == 5: #判断每次递归的i是否等于5 return #如果i等于5就return返回,返回没写返回值就什么都不返回,只是结束函数代码块终止递归 c = a + b #将接收到的a加以b重新赋值给c r = f1(i + 1, b, c) #将接收到的i加以1,接收到的b,新赋值给c,当做参数在次执行传入函数本身进行递归f1(1, 0, 1) #调用执行函数
只取一个递归次数的斐波那契数,也就是取递归某一次的斐波那契数
#!/usr/bin/env python# -*- coding:utf-8 -*-#只取一个递归次数的斐波那契数,也就是取递归某一次的斐波那契数def f1(i, a, b): #自定义函数接收参数传值 if i == 5: #判断每次递归的i是否等于5 return a #如果i等于5就return返回a,结束函数代码块终止递归 c = a + b #将接收到的a加以b重新赋值给c r = f1(i + 1, b, c) #将接收到的i加以1,接收到的b,新赋值给c,当做参数在次执行传入函数本身进行递归 return r #接收满足条件后返回的a并且递归方式返回给上一次执行函数sf = f1(1, 0, 1) #调用执行函数print(sf)#打印出结果 3