Python 生成器簡單示例

生成所有的自然數中的素數

#求所有自然數中的素數
import math
from collections import Iterator,Iterable
def calc():
    i=0
    while True:
        if [ii for ii in range(2,int(math.sqrt(i))) if i%ii == 0] ==[]:
            yield i
        i+=1
    return 0

if __name__=='__main__':
    gen = calc()
    for ii in gen:
        print(ii)

生成器傳遞值

from collections import Iterator,Iterable
def show():
    while True:
        info=yield
        print(info)

if __name__=='__main__':
    aa=show()
    print(isinstance(aa,Iterator))
    print(isinstance(aa,Iterable))
    next(aa)
    for ii in ['I','LOVE','YOU']:
        aa.send(ii)

結果

True
True
I
LOVE
YOU

參考這篇文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章