鱼C论坛

 找回密码
 立即注册
查看: 2034|回复: 0

[学习笔记] 2022-09-14 学习Python-Day12

[复制链接]
发表于 2022-9-14 16:52:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
中秋过后,学习归来!函数的学习有点玄乎玄乎的了P42-P49
  1. ######################################P46
  2. import time


  3. def func():
  4.     x=520
  5.     print(x)
  6. func()

  7. def funa():
  8.     x=880
  9.     def funb():
  10.         x=550
  11.         print(x)
  12.     funb()
  13. funa()

  14. def funa():
  15.     x=880
  16.     def funb():
  17.         print(x)
  18.     return  funb
  19. funa()()
  20. fun=funa()
  21. fun()
  22. def power(exp):
  23.     def exp_of(base):
  24.         return base ** exp
  25.     return exp_of
  26. square = power(2)
  27. print(square(2))
  28. cube =  power(3)
  29. print(cube(3))

  30. def outer():
  31.     x=0
  32.     y=0
  33.     def inner(x1,y1):
  34.         nonlocal x,y
  35.         x=x1+x1
  36.         y=y1+y1
  37.         print(f'现在,x={x},y={y}')
  38.     return inner
  39. move=outer()
  40. move(1,2)
  41. ######################################P47
  42. def myfun():
  43.     print('调用函数')
  44. def report(func):
  45.     print('开始')
  46.     func()
  47.     print('结束')
  48. report(myfun)

  49. def time_master(func):
  50.     print('开始运行')
  51.     start =time.time()
  52.     func()
  53.     end = time.time()
  54.     time_=(end-start)
  55.     print('结束运行')
  56.     print(f'总共运行:{time_:.2f}秒')
  57. def myfunc():
  58.     time.sleep(2)
  59.     print('Hello')
  60. time_master(myfunc)
  61. ###############################
  62. def time_master(func):
  63.     def call_func():
  64.         print('开始运行')
  65.         start = time.time()
  66.         func()
  67.         end = time.time()
  68.         time_ = (end - start)
  69.         print('结束运行')
  70.         print(f'总共运行:{time_:.2f}秒')
  71.     return call_func
  72. @time_master
  73. def myfunc():
  74.     time.sleep(2)
  75.     print('Hello')
  76. myfunc()
  77. #######################################
  78. def call_func(func):
  79.     print('开始运行')
  80.     start = time.time()
  81.     func()
  82.     end = time.time()
  83.     time_ = (end - start)
  84.     print('结束运行')
  85.     print(f'总共运行:{time_:.2f}秒')
  86.     return call_func

  87. def myfunc():
  88.     time.sleep(2)
  89.     print('Hello')
  90. aa=myfunc()
  91. #######################################
  92. def logger(msg):
  93.     def time_master(func):
  94.         def call_func():
  95.             print('开始运行')
  96.             start = time.time()
  97.             func()
  98.             end = time.time()
  99.             time_ = (end - start)
  100.             print('结束运行')
  101.             print(f'总共运行:{time_:.2f}秒')
  102.         return call_func
  103.     return time_master
  104. @logger(msg='a')
  105. def funa():
  106.     time.sleep(1)
  107.     print('正在使用funa')
  108. @logger(msg='b')
  109. def funb():
  110.     time.sleep(1)
  111.     print('正在使用funb')
  112. funa()
  113. funb()
  114. #######################################P47
  115. def logger(msg):
  116.     def time_master(func):
  117.         def call_func():
  118.             print('开始运行')
  119.             start = time.time()
  120.             func()
  121.             end = time.time()
  122.             time_ = (end - start)
  123.             print('结束运行')
  124.             print(f'总共运行:{time_:.2f}秒')
  125.         return call_func
  126.     return time_master

  127. def funa():
  128.     time.sleep(1)
  129.     print('正在使用funa')

  130. def funb():
  131.     time.sleep(1)
  132.     print('正在使用funb')
  133. funaa=logger(msg='a')(funa)
  134. funbb=logger(msg='b')(funb)
  135. funa()
  136. funb()
  137. #######################################P48
  138. def squarex(x):
  139.     return x*x
  140. x1=square(3)
  141. print(x1)
  142. squarey= lambda y:y*y
  143. print(squarey(5))
  144. y=[lambda x:x*x,2,3]
  145. print(y[0](y[1]))
  146. print(y[0](y[2]))
  147. mapp=map(lambda x:ord(x)+10,'FishC')
  148. print(list(mapp))
  149. def boring(x):
  150.     return ord(x)+10
  151. mappp=list(map(boring,'FishC'))
  152. print(mappp)
  153. li=list(filter(lambda x:x%2, range(10)))
  154. print(li)
  155. #######################################P49-生成器
  156. def counter():
  157.     i=0
  158.     while i<=5:
  159.         yield i
  160.         print(i)
  161.         i=i+1
  162. c=counter()
  163. print(c)
  164. def fib():
  165.     back1=0
  166.     back2=1
  167.     while True:
  168.         yield back1
  169.         back1,back2=back2,back1+back2
  170.         # back1=back2
  171.         # back2=back1+back2

  172. f=fib()
  173. print(next(f))
  174. print(next(f))
  175. print(next(f))
  176. print(next(f))
  177. print(next(f))
  178. print(next(f))
  179. t=(i ** 2 for i in range(10))
  180. print(t)

复制代码

在生成器的学习中,斐波那契数列, back1,back2=back2,back1+back2如果写成
back1=back2
back2=back1+back2
结果居然不一样,很是神奇!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-2 14:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表