递归特性:
1、必须有一个明确的结束条件
2、每次进入更深一层递归时,问题规模相比上次递归应有所减少
3、递归效率不高,层次太多会导致内存溢出(栈溢出)
例:问路举例,得到结果后返给上一层(上一个人)一个一个向上传话。
import time
person_list = ['alex','wupeiqi','yuanhao','byl','sb']
def ask_way(person_list):
print('-'*60)
if len(person_list) == 0 :
return '没人知道'
person = person_list.pop(0)
if person == 'byl':
return '%s 说在北京朝阳区' %person
print('hi 你好,%s 公司在哪' %person)
print('%s 回答说:我不知道,我帮你问问其它人%s' % (person,person_list))
time.sleep(2)
res = ask_way(person_list)
# print('%s 问的结果是:%s ' %(person,res))
# print(res)
return res
haha = ask_way(person_list)
print(haha)