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