filter函数用于过滤序列!!!!
#打印1000以内的素数!!
def _odd_iter(): #构建一组3开头的奇数
n = 1
while True:
n+=2
yield n
def _not_divisible(n): #筛选函数
return lambda x:x%n >0
def primes(): #打印素数
yield 2
it = _odd_iter()
while True:
n = next(it)
yield n
it = filter(_not_divisible(n),it)
for n in primes(): #primes函数是Interator,因此可用for循环
if n <1000:
print (n)
else:
break
#2,3,5,7,11......