python之递归函数

一:递归函数:在函数内部,可以调用其他函数,如果一个函数在内部调用自身本身,这个函数就叫做递归函数

递归特性:

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

2,每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3,递归效率不高,递归层次过多贵导致栈溢出(在计算机中,函数调用是通过栈<stack>这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧,由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

练习,问路递归

person_list = ["wangyue","songyang","liyingying","zhaozhen"]
def ask_way(person_list):
           if len(person_list)==0:
           print "没人知道路"
      person = person_list.pop(0)
      if person=="liyingying"
           return "我知道路在哪里"
      res = ask_way(person_list)
      return res
ask_way(person_list)
print res