生成器输出小于max_num的质数
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。
而且,创建一个包含成百上千完个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前
面几个元素,那后面绝大多数元素占用的空间都白白浪费了。生成器有效的解决了这个问题。
代码:
def factor(max_num):
# 这是一个函数 用于输出所有小于max_num的质数
factor_list = []
n = 2
while n < max_num:
find = False
for f in factor_list:
# 先看看列表里面有没有能整除它的
if n % f == 0:
find = True
break
if not find:
factor_list.append(n)
yield n
n += 1
g = factor(10)
for n in g:
print(n)