python基础~13(递归)

# 函数的递归

# 必须有一个明确的结束条件

# 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说:哦,我知道~

递归的效率不高,随着层数的增多,会导致内存逐数增加,可能会导致内存溢出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值