1、导包

  方式1:import random

  方式2:import numpy as np

      from sys import exit

2、闭包

  返回函数

  语法示例

   

def func1():
  print('函数1')
  def func2():
    print('函数二')
  return func2()
func1()

>>>

函数1
函数二

3、装饰器

def func1(funct):
  print('函数1')
  def func2():
    print('函数二')
    return funct()
  return func2()
@func1
def myfunc():
  print('我的函数')
myfunc

>>>

函数1
函数二
我的函数


# 打印生成器
def yield_func():
  print('abc')
  yield '分隔1'
  print('qqq')
  yield '分割2'
  print('www')
  yield '分割3'
  print('eee')
for i in yield_func():
  print(i)
  print('--------')

>>>

abc
分隔1
--------
qqq
分割2
--------
www
分割3
--------
eee


 task1 龟兔赛跑(用到模块time,random)实现龟兔在同一跑道奔跑,且兔子会随机偷懒一段时间

# 导包
import time
import random
# 定义跑到长度
racetrack_length = 10
def runtime(func):
def wrapper():
start_time = time.time()
func()
end_time = time.time()
print(func.__name__,'总共跑了',end_time-start_time,'秒')
return wrapper

@runtime
def tortoise():
for i in range(1,racetrack_length+1):
print('tortoise跑了{}米'.format(i))
#每隔一秒计数 1
time.sleep(1)

@runtime
def rabbit():
for i in range(1,racetrack_length+1):
print('rabbit跑了{}米'.format(i))
# 因兔子会偷懒,设置为每次计数停顿1~3秒
time.sleep(random.randint(1,3))
tortoise()
rabbit()

 

task2  包子生产商,用生成器 做一个包子生产的流程模式

i=1
def product():
global i
while i<11:
yield '生产第{}个包子'.format(i)
i+=1
for j in product():
print(j)
print('销售第{}个包子'.format(i))

>>>

生产第1个包子
销售第1个包子
生产第2个包子
销售第2个包子
生产第3个包子
销售第3个包子
生产第4个包子
销售第4个包子
生产第5个包子
销售第5个包子
生产第6个包子
销售第6个包子
生产第7个包子
销售第7个包子
生产第8个包子
销售第8个包子
生产第9个包子
销售第9个包子
生产第10个包子
销售第10个包子

 

posted on 2022-03-11 08:22  jer-L  阅读(31)  评论(0)    收藏  举报