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()