• python(递归函数)


    1.描述:

    • 递归函数:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

    2.递归函数特性:

    • 必须有一个明确的结束条件;
    • 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
    • 相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。

    3.实例说明

    • 计算阶乘 n! = 1 * 2 * 3 * ... * n,,用函数 fact(n) 表示, 可以看出:fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n,所以,fact(n) 可以表示为 n * fact(n-1),只有 n = 1 时需要特殊处理
    #相加计算,递归方式
    def fact(n):
        if n > 0:
            return fact(n-1) + n
        else:
            return 0
    
    print(fact(5))

    4.实例应用

    #找出接口报文中某个字段的值
    
    queryUserList = {
      "code": "200",
      "msg": "查询用户成功!",
      "model": {
        "user1": {
            "userAccount": "17779828882",
            "userName": "zhengying2",
            "userMobile": "17779828882",
            "userEmail": "17779828882@qq.com"
          },
          "user2": {
            "userAccount": "17779828881",
            "userName": "zhengying1",
            "userMobile": "17779828881",
            "userEmail": "17779828881@qq.com"
          },
          "user3": {
            "userAccount": "17779828880",
            "userName": "zhengying0",
            "userMobile": "17779828880",
            "userEmail": "17779828880@qq.com"
          },
          "user4": {
            "userAccount": "admin",
            "userName": "admin",
            "userMobile": "",
            "userEmail": ""
          },
        "pages": 1
      }
    }
    
    #代码如下
    
    values = []
    def get_value(getkey,dict1):
        if isinstance(dict1,dict):      #验证入参格式是否为字典
            for k,v in dict1.items():   #取出所以的键值对
                if k == getkey:     #判断所拿到的键是否是预期传入的键
                    values.append(v)
                get_value(getkey,v)     #进行递归
    
    get_value("userEmail",queryUserList)
    print(values)
  • 相关阅读:
    fork操作
    PHP操作Memcached
    对nginx进行平滑升级
    Codeforces Round #457 (Div. 2) B
    codeforces Educational Codeforces Round 39 (Rated for Div. 2) D
    矩阵相乘
    求组合数板子
    斯特林(Stirling)公式 求大数阶乘的位数
    codeforces Gym 101572 I 有向图最小环路径
    Floyd算法——保存路径——输出路径 HDU1385
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12384760.html
Copyright © 2020-2023  润新知