zoukankan      html  css  js  c++  java
  • 熬最深的夜喝最劣的酒————浅谈生成器(generator)

    测试(test)
    def s():
    print("stup1")
    n = "第一步"
    yield n # 类似于return 但是又不同于 赖克宝,剁一下,跳一下
    print("stup2")
    yield 2
    print("stup3")
    yield 3
    print("stup4")
    yield 4
    # raise StopIteration # 抛出异常

    f = s()
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    print(f.__next__())
    # print(f.__next__())
    for x in f: # f为迭代对象,类似于迭代器 也可用for
    print(x)
    # f.__iter__() is g
    # 生成器对象,实现了可迭代接口,也实现了迭代器接口
    -----------------------------------------------------------------------------------------------------------


    生成器实现找素数

    # 素数: 只能被一和本身整除的数
    class PrimeNumber(object):
    def __init__(self, start, end):
    self.start = start
    self.end = end

    def isprimenumber(self, k):
    if k < 2:
    return False
    for x in range(2, k): # k取模依次 2-k 为0返回 Falae 否则为true
    if k % x == 0:
    print(-k)        # -表示非素数
    return False
    return True

    def __iter__(self): # 生成器类入口
    for k in range(self.start, self.end):
    if self.isprimenumber(k):
    yield k


    for t in PrimeNumber(1, 100):
    print(t)
  • 相关阅读:
    移动端--基于Android Studio的项目文件结构(一)【转】
    java知识体系粗略梳理
    简单的使用hibernate插入数据的例子
    触发器
    存储过程和函数
    视图
    索引的设计和使用
    数据类型的选择
    表类型(存储引擎)的选择
    MySQL中的常用函数
  • 原文地址:https://www.cnblogs.com/jum-bolg/p/10804165.html
Copyright © 2011-2022 走看看