Python入门-递归函数以及闭包

1.匿名函数

# 定义匿名函数,lambda表达式
a = lambda x, y: x+y
a(10,22)  #32

2.递归函数

# 100以内的数字求和,递归解法

def s(num):
    if num == 1:  #定义最终点
        return 1
    else:
        return num + s(num -1)  #不断调用自身
s(100)
"""
解法过程:100+99+98....+3+2+1
"""

#lambda实现闭包
def add(n1):
  return lambda n2: n1 + n2
hello = add(100)
print(hello(200))

3.变量作用域

num = 100 # 全局变量
def out():
    print(num)
def put():
    print(num)
out()
put()
"""
100
100
"""

num = 100
def change():
    """
    查看变量作用域
    """
    num = 30
    print("change内部的变量:",num)
change()
print("全局变量:",num)
"""
change内部的变量: 30
全局变量: 100
"""


num = 100
def change():
    """
    修改全局变量内容
    """
    global num
    num = 30
    print("change内部的变量:",num)
change()
print("全局变量:",num)
"""
change内部的变量: 30
全局变量: 30
"""


def p(count):
    def out(data):
        nonlocal count
        count += 1
        return "第{}次输出数据:{}".format(count,data)
    return out
oa = p(0)
print(oa("tom"))
print(oa("hello"))
print(oa("ok"))
"""
第1次输出数据:tom
第2次输出数据:hello
第3次输出数据:ok
"""

4.主函数

#lambda实现闭包
def add(n1):
    return lambda n2: n1 + n2
def main():
    hello = add(100)
    print(hello(200))

if __name__ == "__main__":  #主函数定义,下面为执行代码
    main()

 

Python入门-递归函数以及闭包

上一篇:Linux 下安装 Python3


下一篇:Java 集合