# 函数的递归
# 必须有一个明确的结束条件
# def digui(n):
# print(n)
# if int(n/2)==0:
# return n
# return digui(int(n/2))
# digui(10)
person=['a','b','r','t','h']
def asway(person):
if len(person)==0:
return '都不知道'
p=person.pop(0)
# print(person)
if p=='h':
return '%s说:哦,我知道~'%p
print('%s,敢问路在何方?'%p)
print('我不知道哦~不过,我可以帮你问问%s'%person)
res=asway(person)
print('%s问的结果是:%s'%(p,res))
return res
key=asway(person)
输出结果:
我不知道哦~不过,我可以帮你问问['b', 'r', 't', 'h']
b,敢问路在何方?
我不知道哦~不过,我可以帮你问问['r', 't', 'h']
r,敢问路在何方?
我不知道哦~不过,我可以帮你问问['t', 'h']
t,敢问路在何方?
我不知道哦~不过,我可以帮你问问['h']
t问的结果是:h说:哦,我知道~
r问的结果是:h说:哦,我知道~
b问的结果是:h说:哦,我知道~
a问的结果是:h说:哦,我知道~
递归的效率不高,随着层数的增多,会导致内存逐数增加,可能会导致内存溢出