10-匿名函数

 1 #视频2  匿名函数
 2 li =[1,2,3,4,5,6,7,8]
 3 # def fun(n):
 4 #     if n>4:
 5 #         return n
 6 #
 7 # aa =filter(fun,li)
 8 aa=filter(lambda n:n>4,li)
 9 print(list(aa))
10 
11 f=lambda x,y:x+y    #方式1
12 print(f(11,22))
13 
14 print((lambda x,y:x+y)(14,23))    #方式2

运行:

 1 #视频3作用域
 2 a =11  #    全局变量
 3 def func():
 4     #global a
 5     a=222
 6 
 7     def fun2():
 8         nonlocal a  # 声明a的修改对外层函数有效
 9         a=999
10         print('内层函数fun2:',a)
11     fun2()
12     print('外层函数li面:%s' % a)
13 
14 func()
15 print('函数外面:%s'%a)

运行:

 1 a=111
 2 def fun():
 3     # global a
 4     a=112
 5     print('外层调用fun2前:',a)
 6     def fun2():
 7         nonlocal a
 8         # a=113
 9         print('内层:',a)
10         a=a+1
11     fun2()
12     print('外层:',a)
13 
14 fun()
15 print('函数外:',a)

运行:

 1 # 闭包三个条件:
 2 # 1,函数里面内嵌函数
 3 # 2,外层函数返回的是内层函数的函数名
 4 # 3,内部函数使用外部变量
 5 
 6 #闭包
 7 def func():
 8     a = 1
 9     def fun2():
10         c = 2*a
11         print(c)
12     return fun2
13 
14 # a = func()
15 # a()
16 
17 func()()

运行:

1 #递归函数
2 def fun(n):
3     if n==1:
4         return n
5     else:
6         return n*fun(n-1)
7 
8 a = fun(6)
9 print(a)

运行:

ssh://[email protected]:1234/home/pyvip/.virtualenvs/py3env/bin/python3 -u /home/pyvip/20180606py_case/基础/12递归函数4.py
720

作业:

 1 #作业--交换 元祖和字典  用zip
 2 tu = (1,2 ,3)
 3 dic = {'a':11 ,'b':22 ,'c':33}
 4 
 5 def func(a,b):
 6     new_tu = tuple(b.values())
 7     new_dic = dict(zip(b.keys(),a))
 8 
 9     return new_tu,new_dic
10 
11 tu1,dic1 = func(tu,dic)
12 print(tu1)
13 print(dic1)

运行:

ssh://[email protected]:1234/home/pyvip/.virtualenvs/py3env/bin/python3 -u /home/pyvip/20180606py_case/基础/12递归函数4.py
(33, 11, 22)
{'c': 1, 'a': 2, 'b': 3}

猜你喜欢

转载自www.cnblogs.com/tiantiancode/p/12899621.html