欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

day13-生成器

程序员文章站 2024-01-11 22:50:04
只要含有yield关键字的函数都是生成器函数。yield不能和return共用且需要写在函数内。 生成器函数 : 执行之后会得到一个生成器作为返回值。 yield没有结束一个函数,可以连续打印。 生成器可以生成n个你想要的字符串。 一个利用监听器实现的监听文件输入操作。 ......
def generator():
    print(1)
    yield 'a'
rcp = generator()
print(rcp.__next__())

  只要含有yield关键字的函数都是生成器函数。yield不能和return共用且需要写在函数内。

  生成器函数 : 执行之后会得到一个生成器作为返回值。

def generator():
    print(1)
    yield 'a'
    print(2)
    yield 'b'
rcp = generator()
put = rcp.__next__()
print(put)
put = rcp.__next__()
print(put)

  yield没有结束一个函数,可以连续打印。

# 产生200个字符串def putstr():    for i in range(200):        yield '我最帅%d'%iput = putstr()for i in put:    print(i)

# 可不可以在两百个字符串中只取五十个,然后再紧接着上一次结束的地方再取五十个呢?def putstr():    for i in range(200):        yield '你最帅%s'%iput = putstr()count = 0for i in put:    print(i)    count += 1    if count >= 50:        breakprint('----------------------')for i in put:    print(i)    count += 1    if count >= 100:        break

  生成器可以生成n个你想要的字符串。

# 监听文件输入
def func(filename):
    f = open(filename,encoding='utf-8')
    while true:
        line = f.readline()
        if line.strip():
            yield line
g = func('file')
for i in g:
    print(i)

  一个利用监听器实现的监听文件输入操作。