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个包子
浙公网安备 33010602011771号