Python中递归函数以及函数的嵌套与闭包

Python高级应用与数据分析学习笔记 02

# -*- coding: utf-8 -*-
"""
-------------------------------------------------
   File Name:     fun1
   Description :
   Author :       Lenovo
   date:          2018/1/4
-------------------------------------------------
   Change Activity:
                   2018/1/4:
-------------------------------------------------
"""
__author__ = 'Lenovo'

# 基本函数的引用
def fun0():
    print("hello world!")

fun0()  # hello world!

# 二级函数的嵌套
def fun1():
    def fun2():
        print("Hello Workd!")
    return fun2
# a = fun1()
# a()
fun1()()   # hello world!

# 三级函数的嵌套
def fun1():
    def fun2():
        def fun3():
            print("Hello Workd!")
        return fun3
    return fun2
fun1()()()   # hello world!

# 二级函数的闭包
def fun1(x):
    def fun2(y):
        print(x+y)
    return fun2
fun1(3)(10)  #13

# 三级函数的闭包
def fun1(x):
    def fun2(y):
        def fun3(z):
            print(x+y+z)
        return fun3
    return fun2
fun1(3)(10)(5)  #18


# 递归函数
def main(n):
    print('进入第%d层梦境'%n)
    if n == 3:
        print('到达潜意识区,原来我最爱的人是你!开始醒来')
    else:
        main(n+1)
    print('从第%d层梦境醒来'%n)

main(1)  #回到调用的地方

# 进入第1层梦境
# 进入第2层梦境
# 进入第3层梦境
# 到达潜意识区,原来我最爱的人是你!开始醒来
# 从第3层梦境醒来
# 从第2层梦境醒来
# 从第1层梦境醒来


# 递归函数:阶乘
def jiecen(n):
    if n == 1:
        return 1
    else:
        return n*jiecen(n-1)

print(jiecen(5))
# 120

你可能感兴趣的:(Python中递归函数以及函数的嵌套与闭包)