一、 什么是递归函数

    如果一个函数在内部调用自身本身,这个函数就是递归函数。
    在递归函数中,是一个有去有回的过程。

 

二、递归函数的说明

 

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)
menu_three.py

相关文章: