递归函数

一个函数在自己内部调用自己,需要有个返回结果
import time

person_list = ["alex", "wupqi", "yaohuan", "lhaifeng", "zhanshi"]


def ask_way(person_list):
print("-" * 50)
if len(person_list) == 0:
return "没人知道"
person = person_list.pop(0)
if person == "lhaifeng":
return "%s 说:我知道地址" % person

print("hi 美男[%s],敢问路在何方?" % person)
print("%s 回答道:我不知道,我可以帮你问问%s..." % (person, person_list))
time.sleep(3)
#递归调用自己
res = ask_way(person_list)#需要等,保存这个状态,递归耗内存
print("%s-问的结果是:% res" %(person,res))
return res


res2 = ask_way(person_list)
print(res2)
#递归必须有一个明确的结束条件
#每次进入更深一层递归时,问题规模相比上一次递归会减少
#递归的效率不高,容易到处栈溢出
原文地址:https://www.cnblogs.com/LittleGreenOrc/p/9545437.html