专业编程基础技术教程

网站首页 > 基础教程 正文

Python3使用yield生成器

ccvgpt 2025-02-06 14:11:56 基础教程 1 ℃
# yield关键字可以定义生成器对象。生成器是一个函数,它生成一个值得序列,以便在迭代器中使用。
# 生成器对应一般用在 for语句、sum() 或其他一些使用序列的操作中
def countdown(n):
    # print(n)
    # print("start countdown: {}".format(n))
    while n > 0:
        yield n
        n -= 1
    return


if __name__ == '__main__':
    c = countdown(5)
    print(type(c))  # 
    for i in c:
        print(i, end=' ')  # 5 4 3 2 1
    
    print(sum(countdown(10)))  # 55
    print(max(countdown(99)))  # 99
    print(list(countdown(10)))  # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    print(tuple(countdown(5)))  # (5, 4, 3, 2, 1)
    print([x * x for x in countdown(5)])  # [25, 16, 9, 4, 1]
    
    y = countdown(2)
    print(y.__next__())
    # 2
    # start countdown: 2
    # 2
    print(y.__next__())  # 1
    # print(c.__next__())  # StopIteration

最近发表
标签列表