# python干活系列----递归

1. 递归的执行速度特别慢
2. 递归特别耗内存，容易造成内存溢出（耗内存的原因下文会解释）
3. 必须要有一个约束条件，没有就会变成死循环，最终导致内存不足

1.打印下面的地点名称
2.查看地区是否在列表里

[
{
"text":"北京",
"children":[
{"text":"朝阳","children":[]},
{"text":"昌平","children":[
{"text":"沙河","children":[]},
{"text":"回龙观","children":[]}
]},
]
},
{
"text":"上海",
"children":[
{"text":"宝山","children":[]},
{"text":"金山","children":[]},
]
}
]

def recursion(list):
for item in list:
print(item["text"])
recursion(item["children"])
recursion(list)

def recursion(list,name):
for item in list:
if item["text"]==name:
return True
else:
if recursion(item["children"],name):
return True
else:
return False
print(recursion(list,"沙河"))->True
print(recursion(list,"MrXu"))->False

def isRecursion(list,name):
for item in list:
if item["text"]==name:
return True
else:
isRecursion(item["children"],name)

# 递归里面的执行的时候外面的真的没有执行完毕
def isComplete(num):
num=int(num/2)
print(num)
if num:
isComplete(num)
print(num)
isComplete(4)
#结果： 2 1 00 1 2

0之后又重新打印了1跟2就证明了这个事情，这也导致了递归的另外俩个缺点就是，执行速度慢和必须要有限制条件