一、递归的定义:函数自身调用自身
示例:(死循环,仅示范使用)
def test(n):
print(n)
test(n)
test(10)
正常递归:
def test(n):
print(n)
if int(n / 2) == 0:
return n
res = test(int(n / 2))
return res
test(10)
递归问路:
def ask_way(persionlist):
print("-" * 60)
if len(persionlist) == 0:
return "没人知道"
persion = persionlist.pop(0)
if persion == "dou5":
print("谢天谢地你终于问对人了")
return "%s 说:你顺着路往前走,走到头再往右" % persion
print("hi 帅哥%s,where is the way?" % persion)
print("%s回答道:我不知道,你等着,俺给你问问%s......" % (persion, persionlist))
time.sleep(3)
res = ask_way(persionlist)
return res
ask_way(persion_list)
二、递归的特性
1、必须有一个明确的结束条件
2、每次进入更深一层递归时,问题规模相比上一次递归都应有所减少
3、递归的效率不高,递归层次过多会导致栈溢出