zoukankan      html  css  js  c++  java
  • 第九节 生成器

    def create_num(all_num):
    a, b = 0, 1
    current_num = 0
    while current_num <= all_num:
    yield a # 如果一个函数中有yield语句,那么这个就不再是一个函数,而是一个生成器模板
    a, b = b, a+b
    current_num += 1

    '''
    生成器是一种特殊的迭代器
    '''
    # 则在调用调用create_num时,不再是调用函数,而是在创建一个生成器模板
    a = create_num(10) #不会像函数一样运行,而是生成数据的一个类,与list等比较,list是实在的数据,而create_num()是生成数据的对象
    print(create_num(10))
    # for x in a: #开始循环第一个,代码执行到yield语言暂停,将a取出,然后再次回到暂停的地方继续往下执行,不是create_num整个执行结束将保存的a值一次性当作一个迭代器
    # print(x)

    b = next(a)
    print(b)
    c = next(a)
    print(c) # 取数原理跟用for循环一样
  • 相关阅读:
    luogu P3801 红色的幻想乡
    [USACO07OPEN]吃饭Dining
    [SCOI2007]蜥蜴
    [SDOI2011]染色
    [USACO07DEC]Sightseeing Cows
    [HNOI2007]紧急疏散EVACUATE
    [ZJOI2009]假期的宿舍
    [SDOI2013]费用流
    [CQOI2009]跳舞
    使用chrony安装chrony
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12575506.html
Copyright © 2011-2022 走看看