代码改变世界

Python 递归

2018-04-20 19:00  钱先生  阅读(166)  评论(0编辑  收藏  举报

递归特性

  • 必须有一个明确的结束条件 
  • 每次进入更深一层递归时, 问题规模相比上次递归都应有所减少
  • 递归效率不高,递归层次过多会导致栈溢出

 

1 # 递归必须有结束条件,否则会进入死循环 (如果是死循环, 系统最多递归999次就会报错)
2 def calc(n):
3     print(n)
4     if int (n/2)>0:
5         return calc(int (n/2))   # 如果不加int, 因为有小数(无理小数),还是不会结束
6     print('-->',n)