[python] 递归 recursion

  • 递归 : 函数调用自己的过程
    • 细节:
      • 存在递推关系  : 向下调用 ,向上回溯
      • 要有临界值 (结束条件)

 

  • 我最深刻的理解(藏在注释里哦):

  

1 def digui(num):
2     print(str(num)+'*')
3     if num > 0 : # 这里是临界值
4         digui(num - 1) # 这里调用本身的函数
5     else:
6         print('='*20)
7     print(num) # 逐次返回上一级的调用时会被打印
8 
9 digui(3)

----执行结果----

3*
2*
1*
0*
====================
0
1
2
3

 

  • 栗子们: 注释! 看注释!
 1 # 斐波那契数列 通过递归
 2 # 数学定义 : 1,1,2, 3, ..., f(n)=f(n-2)+f(n-1)
 3 
 4 def fi(n):
 5     if n == 1 or n == 2:
 6         return 1
 7     m = fi(n-2) + fi(n-1)
 8     return m
 9 
10 a =  fi(20)
11 print(a)

----执行结果----
6765
# 用for循环数一遍 斐波那契

n = 20
ls = [1,1]
for i in range(1,n+1):
    if i == 1 or i == 2:
        fi = 1
        print(fi)

    else:
        fi = ls[i-3] + ls[i-2]
        print(fi)
        ls.append(fi)
----执行结果----
 
  
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765



1
def miao(n): 2 if n > 0: 3 print('抱着',end='') 4 miao(n-1) 5 elif n == 0: 6 print('抱着',end='') 7 print('我的小鲤鱼',end='') 8 print('的我',end='') 9 10 return None 11 12 print('吓得我抱起了',end='') 13 miao(5)

----执行结果----


吓得我抱起了抱着抱着抱着抱着抱着抱着我的小鲤鱼的我的我的我的我的我的我

↑ 看到的别人的递归图图  无论如何狗子都超可爱!!!

转载于:https://www.cnblogs.com/cherry71129/p/11357064.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值