zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    PHP的命令行脚本调用
    JAVA使用jar命令制作可执行GUI程序
    PHP的代理模式
    PHP中的__clone()
    PHP使用反射动态加载第三方类
    NAT小记
    JAVA睡眠理发师代码记录
    PHP通过反射获得类源码
    PHP中单引号双引号的区别
    [转载]PHP导出数据库数据字典脚本
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12384760.html
Copyright © 2011-2022 走看看