递归、问路函数

 递归就是调用自己,return才能结束循环,print没用,

def clc(n):
    print(n)
    if int(n/2)==0:
        return n
    res=clc(int(n/2))
    return res
clc(10)
import time
person_list = ['cat', 'dog', 'fish','jerry'] #1
def ask_way(person_list):
    if len(person_list) == 0:  # 判断是否为空,也可以理解为没人的时候
        return 'i dont know'
    person = person_list.pop(0)  # 一次弹出一个人来纹路
    if person == 'jerry':  # 如果问到了列表中最后的人
        return '%s say turn aroud the road' % person#指路
    print('hi,%s ,where the road' % person)#列表循环
    print('%s say i dont know,you can ask %s' % (person, person_list))#某个人不知道你可以问问剩下的人
    time.sleep(1)#1秒
    return ask_way(person_list)#问题规模减小

res=ask_way(person_list)#最开始纹路的人 2
print(res)

 

posted @ 2018-04-25 21:37  未来的技术  阅读(106)  评论(0编辑  收藏  举报