(1)简单输出
用next、send
def foo():
while True:
s = yield 23
print("res",s)
g = foo()
print(next(g))
print(g.send(45))
print(next(g))
>>23
>>res 45
>>23
>>res None
>>23
def foo():
while True:
yield 23
# print("res",s)
g = foo()
print(next(g))
print(g.send(45))
print(next(g))
>>23
>>23
>>23
def foo():
while True:
s = yield 23
# print("res",s)
g = foo()
print(next(g))
print(g.send(45))
print(next(g))
>>23
>>23
>>23
def foo():
while True:
s = yield 23
print("res",s)
g = foo()
print(next(g))
# print(g.send(45))
print(next(g))
>>23
>>res None
>>23
(2)列表输出
用循环for
def foo(n):
while n <= 1000:
yield n
n += 1
for i in foo(0):
print(i)
(a)控制输出范围和输出速度
def foo(n):
while n <= 1000:
yield n
n += 1
for n in foo(99):
print(n)
(b)控制输出速度和输出时间?或是花样作死?
def foo(n):
while n <= n**n:
yield n
n += 100000
for i in foo(123):
print(i)
#不明不白
def foo(n):
while n <= n*n:
yield n
n *= 100000
for i in foo(123):
print(i)
#作死了
def foo(n):
while n <= n*n:
yield n
n *= 10
print("stop")
for i in foo(3):
print(i)
#作死了
注:明细看到程序停滞了,是否可以利用这个停滞性作出一定的运用呢?
现象:
我笔记本的cpu被使用了100%,物理内存是60%,我的机器还能正常运行。
判断:
1.首先需要判断程序是否还在运行,可以用断言、print、断点、监控后台进程等
2.利用时间装饰器对运行时间做一个统计对比
3.直接程序的半个循环就退出
运用:
(a)电脑死机、卡顿等这并不是一个好的运用;(b)
(3)思考动态取数和动态+时间戳取数的可能性
(4)思考“动态+随机”取数的可能性
(5)思考随机取随机数的可能性