一、 什么是递归函数
如果一个函数在内部调用自身本身,这个函数就是递归函数。
在递归函数中,是一个有去有回的过程。
二、递归函数的说明
def fact(n): if n == 1: return 1 return n * fact(n - 1) print(fact(5)) # fact(5) # ===> 5 * fact(4) # ===> 5 * (4 * fact(3)) # ===> 5 * (4 * (3 * fact(2))) # ===> 5 * (4 * (3 * (2 * fact(1)))) # ===> 5 * (4 * (3 * (2 * 1))) # ===> 5 * (4 * (3 * 2)) # ===> 5 * (4 * 6) # ===> 5 * 24 # ===> 120
通过上面的实例,可以总结出:
递归函数就是在函数内部调用自身本身,直到自身返回的是一个具体的值而不是函数,然后从内向外逐一返回函数的值,因此递归是一个有去有回两个过程组成的;
三、一个递归函数的实例
menu = { '陕西省': { '西安':{ '未央区':{}, '莲湖区':{}, '高新区':{}, }, '咸阳':{ '秦都区':{}, '渭城区':{} } }, '四川省': { '成都':{ '锦江区':{}, '青羊区':{}, '金牛区':{}, }, '绵阳':{ '涪城区': {}, '游仙区': {}, } } } def threeTL(dic): while True: for key in dic: print(key) choice = input('>>>').strip() if choice == 'b' or choice == 'q': return choice elif choice in dic and dic[choice]: res = threeTL(dic[choice]) if res == 'q': return 'q' elif not choice or choice not in dic: continue threeTL(menu)