递归

递归

1 def calc(n):
2     print(n)
3     if int(n/2) == 0: #递归出口
4        return n
5     res=calc(int(n / 2))
6     return res
7 calc(10)
运行结果:
10
5
2
1

 

import time
person_list=['alex','wangzi','kaixin','dashu']
def ask_way(person_list):
    print('_'*60)
    if len(person_list) == 0:
        return '没有人知道在哪'
    person=person_list.pop(0)
    if person == 'dashu':
        return '%s说:我知道,在中心街' %person
    print('hi,请问[%s],你知道www在哪吗?'%person )
    print('%s 回答:不知道 但念在你态度诚恳 我去帮你问问%s...'%(person,person_list))
    time.sleep(2)
    res=ask_way(person_list)  #调用自己     
    print('%s问的结果是:%res'%(person,res))
    return res
res=ask_way(person_list)
print(res)
运行结果:
____________________________________________________________
hi,请问[alex],你知道www在哪吗?
alex 回答:不知道 但念在你态度诚恳 我去帮你问问['wangzi', 'kaixin', 'dashu']...
____________________________________________________________
hi,请问[wangzi],你知道www在哪吗?
wangzi 回答:不知道 但念在你态度诚恳 我去帮你问问['kaixin', 'dashu']...
____________________________________________________________
hi,请问[kaixin],你知道www在哪吗?
kaixin 回答:不知道 但念在你态度诚恳 我去帮你问问['dashu']...
____________________________________________________________
kaixin问的结果是:'dashu说:我知道,在中心街'
wangzi问的结果是:'dashu说:我知道,在中心街'
alex问的结果是:'dashu说:我知道,在中心街'
dashu说:我知道,在中心街

Process finished with exit code 0

递归特性:

1:必须有明确的出口

2:每次进入更深一层递归 问题规模减小

3:递归效率不高 层次过多会导致栈溢出

 

 

posted @ 2018-05-19 15:15 容颜-gl 阅读(...) 评论(...) 编辑 收藏

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值