zoukankan      html  css  js  c++  java
  • Python基础之第十二篇:yield生成器

    生成器是一种像列表和元组的iterable,也叫做generator;有几点需要注意: 1.不允许使用索引进行索引访问,2.可以使用for循环进行遍历,3.语法yield用来定义生成生成器!
    yield语句定义生成器向调用者提供结果,但是不破坏本地变量。

    def countdown():
        i=5
        while i>0:
            yield i #yield:生成器的标志   语法: yield  i (i是定义的数)
            i -= 1
    for i in countdown():
        print(i)
    
    #素数的生成器(判断是不是素数)    也就是说只接受素数的传入:
    def get_prime():
        num = 2
        while True:
            if is_prime(num):
                yield num
                num += 1
    #生成器没有内存限制! 类似迭代器
    # def my_sevens():
    #     while True:
    #         yield 7
    #
    # for n in my_sevens():
    #     print(n)
    #为满足条件的函数生成列表
    # def numbers(x):
    #     for m in range(x):
    #         if m % 2 == 0:
    #             yield m
    # print(list(numbers(10)))
    
    # def make_word():
    #     word = ""
    #     for ch in "spam":       #也验证了字符串在for...in...语句里面的规则
    #         word += ch
    #         yield word
    # print(list(make_word()))
  • 相关阅读:
    debug和release转载
    坐标系与基本图元(8)
    坐标系与基本图元(7)
    坐标系与基本图元(5)
    坐标系与基本图元(6)
    坐标系与基本图元(4)
    坐标系与基本图元(3)
    坐标系与基本图元(2)
    BZOJ 1090
    Xor
  • 原文地址:https://www.cnblogs.com/chenruhai/p/12464267.html
Copyright © 2011-2022 走看看