| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
中秋过后,学习归来!函数的学习有点玄乎玄乎的了P42-P49   
- ######################################P46
 
 - import time
 
  
 
- def func():
 
 -     x=520
 
 -     print(x)
 
 - func()
 
  
- def funa():
 
 -     x=880
 
 -     def funb():
 
 -         x=550
 
 -         print(x)
 
 -     funb()
 
 - funa()
 
  
- def funa():
 
 -     x=880
 
 -     def funb():
 
 -         print(x)
 
 -     return  funb
 
 - funa()()
 
 - fun=funa()
 
 - fun()
 
 - def power(exp):
 
 -     def exp_of(base):
 
 -         return base ** exp
 
 -     return exp_of
 
 - square = power(2)
 
 - print(square(2))
 
 - cube =  power(3)
 
 - print(cube(3))
 
  
- def outer():
 
 -     x=0
 
 -     y=0
 
 -     def inner(x1,y1):
 
 -         nonlocal x,y
 
 -         x=x1+x1
 
 -         y=y1+y1
 
 -         print(f'现在,x={x},y={y}')
 
 -     return inner
 
 - move=outer()
 
 - move(1,2)
 
 - ######################################P47
 
 - def myfun():
 
 -     print('调用函数')
 
 - def report(func):
 
 -     print('开始')
 
 -     func()
 
 -     print('结束')
 
 - report(myfun)
 
  
- def time_master(func):
 
 -     print('开始运行')
 
 -     start =time.time()
 
 -     func()
 
 -     end = time.time()
 
 -     time_=(end-start)
 
 -     print('结束运行')
 
 -     print(f'总共运行:{time_:.2f}秒')
 
 - def myfunc():
 
 -     time.sleep(2)
 
 -     print('Hello')
 
 - time_master(myfunc)
 
 - ###############################
 
 - def time_master(func):
 
 -     def call_func():
 
 -         print('开始运行')
 
 -         start = time.time()
 
 -         func()
 
 -         end = time.time()
 
 -         time_ = (end - start)
 
 -         print('结束运行')
 
 -         print(f'总共运行:{time_:.2f}秒')
 
 -     return call_func
 
 - @time_master
 
 - def myfunc():
 
 -     time.sleep(2)
 
 -     print('Hello')
 
 - myfunc()
 
 - #######################################
 
 - def call_func(func):
 
 -     print('开始运行')
 
 -     start = time.time()
 
 -     func()
 
 -     end = time.time()
 
 -     time_ = (end - start)
 
 -     print('结束运行')
 
 -     print(f'总共运行:{time_:.2f}秒')
 
 -     return call_func
 
  
- def myfunc():
 
 -     time.sleep(2)
 
 -     print('Hello')
 
 - aa=myfunc()
 
 - #######################################
 
 - def logger(msg):
 
 -     def time_master(func):
 
 -         def call_func():
 
 -             print('开始运行')
 
 -             start = time.time()
 
 -             func()
 
 -             end = time.time()
 
 -             time_ = (end - start)
 
 -             print('结束运行')
 
 -             print(f'总共运行:{time_:.2f}秒')
 
 -         return call_func
 
 -     return time_master
 
 - @logger(msg='a')
 
 - def funa():
 
 -     time.sleep(1)
 
 -     print('正在使用funa')
 
 - @logger(msg='b')
 
 - def funb():
 
 -     time.sleep(1)
 
 -     print('正在使用funb')
 
 - funa()
 
 - funb()
 
 - #######################################P47
 
 - def logger(msg):
 
 -     def time_master(func):
 
 -         def call_func():
 
 -             print('开始运行')
 
 -             start = time.time()
 
 -             func()
 
 -             end = time.time()
 
 -             time_ = (end - start)
 
 -             print('结束运行')
 
 -             print(f'总共运行:{time_:.2f}秒')
 
 -         return call_func
 
 -     return time_master
 
  
- def funa():
 
 -     time.sleep(1)
 
 -     print('正在使用funa')
 
  
- def funb():
 
 -     time.sleep(1)
 
 -     print('正在使用funb')
 
 - funaa=logger(msg='a')(funa)
 
 - funbb=logger(msg='b')(funb)
 
 - funa()
 
 - funb()
 
 - #######################################P48
 
 - def squarex(x):
 
 -     return x*x
 
 - x1=square(3)
 
 - print(x1)
 
 - squarey= lambda y:y*y
 
 - print(squarey(5))
 
 - y=[lambda x:x*x,2,3]
 
 - print(y[0](y[1]))
 
 - print(y[0](y[2]))
 
 - mapp=map(lambda x:ord(x)+10,'FishC')
 
 - print(list(mapp))
 
 - def boring(x):
 
 -     return ord(x)+10
 
 - mappp=list(map(boring,'FishC'))
 
 - print(mappp)
 
 - li=list(filter(lambda x:x%2, range(10)))
 
 - print(li)
 
 - #######################################P49-生成器
 
 - def counter():
 
 -     i=0
 
 -     while i<=5:
 
 -         yield i
 
 -         print(i)
 
 -         i=i+1
 
 - c=counter()
 
 - print(c)
 
 - def fib():
 
 -     back1=0
 
 -     back2=1
 
 -     while True:
 
 -         yield back1
 
 -         back1,back2=back2,back1+back2
 
 -         # back1=back2
 
 -         # back2=back1+back2
 
  
- f=fib()
 
 - print(next(f))
 
 - print(next(f))
 
 - print(next(f))
 
 - print(next(f))
 
 - print(next(f))
 
 - print(next(f))
 
 - t=(i ** 2 for i in range(10))
 
 - print(t)
 
  
  复制代码 
在生成器的学习中,斐波那契数列, back1,back2=back2,back1+back2如果写成  
back1=back2  
back2=back1+back2 
结果居然不一样,很是神奇! 
 |   
 
 
 
 |