生成所有的自然數中的素數
#求所有自然數中的素數
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