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": ""
},
"user2": {
"userAccount": "17779828881",
"userName": "zhengying1",
"userMobile": "17779828881",
"userEmail": ""
},
"user3": {
"userAccount": "17779828880",
"userName": "zhengying0",
"userMobile": "17779828880",
"userEmail": ""
},
"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) 相关推荐
steeven 2020-11-10
Tips 2020-10-14
nongfusanquan0 2020-08-18
清溪算法君老号 2020-06-27
清溪算法 2020-06-21
RememberMePlease 2020-06-17
nurvnurv 2020-06-05
SystemArchitect 2020-06-02
清溪算法 2020-05-27
清溪算法 2020-05-25
LczPtr 2020-05-25
举 2020-05-20
徐建岗网络管理 2020-05-10
steeven 2020-05-09
Tips 2020-05-03
猛禽的编程艺术 2020-05-01