zoukankan      html  css  js  c++  java
  • python3 递归

    递归调用:
      在调用一个函数的过程中,直接或者简介调用了该函数本身
       必须有一个明确的结束条件
    递归特性:
      1. 必须有一个明确的结束条件
      2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
      3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,
      每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

    注意:函数不能够像while那样一直死循环下去,函数递归最大只能递归999次
     
    # 例子
    age(1)=age(2)+2
    age(2)=age(3)+2
    age(3)=age(4)+2
    age(4)=age(5)+2
    age(5)=18
    
    age(n)=age(n+1)+2   #n<5
    age(n)=18           #n=5
    
    def age(n):
        if n == 5:
            return 18
        return age(n+1)+2
    
    print(age(1))
    
    
    练习:打印出列表中的所有元素
    l = [1,[2,3,[4,5,[6,7,[8,9,[10,11,[12,13]]]]]]]
    def func(l):
        for i in l:
            if isinstance(i,list):
                func(i)
            else:
                print(i)
    func(l)
    应用场景:不知道应该循环多少次,只知道什么时候应该结束
  • 相关阅读:
    Kubernetes 部署微服务电商平台(16)
    Android开发如何去除标题栏title
    eclipse中logcat偶尔不显示log的问题解决办法
    Two Sum
    事件的解除与绑定
    使用 Canvas 绘图
    表单脚本
    事件
    DOM2 和 DOM3
    DOM扩展
  • 原文地址:https://www.cnblogs.com/lucaq/p/7067697.html
Copyright © 2011-2022 走看看