初识递归

了解递归

在函数中调用自身函数,最大递归深度默认是997或998  ——是python从内存角度出发做的限制

如果递归次数太多,就不合适使用递归来解决问题

递归的确定:战内存

递归的优点:会使代码简单

修改递归的最大深度

import sys
sys.setrecursionlimit(100000)  #数字内容可以随意修改

例1、

def age(n):
    if n == 4:
        return 40
    elif n > 0 and n < 4:
        return age(n+1)+2
print(age(1))    # 8、此处调用了age(1),所以打印出age(1)  46

"""
第一次执行:
def age(1): 
    if 1 == 4:
        return 40
    elif 1 > 0 and 1 < 4:
        return age(2)+2   #此时会先执行age(1+1),将age(2)返回再次执行   7、此时age(2)为46,将值返回给age(1)
print(age(1)) # 1、第一次调用,首先先执行age(1),此时n=1   

第二次执行:     
def age(2):
    if 2 == 4:
        return 40
    elif 2 > 0 and 2 < 4:
        return age(3)+2 # 2、将age(3)返回函数再次执行  6、此时age(3)为 44,将值回给age(2)


第三次执行:     
def age(3):
    if 3 == 4:
        return 40
    elif 3 > 0 and 3 < 4:
        return age(4)+2 # 3、将age(4)返回函数再次执行   5、此时值为 42 ,将值返回给age(3)
        
第四次执行:     
def age(4):
    if 4 == 4:    
        return 40   # 4、执行结束,因为谁调用函数,值就会返回给谁,所以40会返还给第三次执行中调用它的函数
    elif 3 > 0 and 3 < 4:
        return age(3+1)+2  
        
print(age(1))

 

能看到递归

能知道递归的应用场景

初识递归

算法--二分查找法

三级菜单--递归实现

posted @ 2018-08-30 09:44  答&案  阅读(134)  评论(0编辑  收藏  举报