递归的表现形式(此列不是递归只是说明递归的表现形式)
#递归的表现形式(此列不是递归只是说明递归的表现形式)
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