关于Python利用埃氏筛法筛选素数中yield迭代知识的学习日记(个人学习理解,错误更新)
本篇博客是在参阅 廖雪峰的filter介绍之后对yield方法产生疑问,进行研究后所做的笔记。夹杂了我对这个filter例子的理解,如果有人阅读后发现我的理解有不到位的情况,请慷慨指出。
这里是埃氏筛法
yield存在的意义
yield把原来独立的元素划分成一个可迭代的元素,本身yield相当于返回功能和迭代器功能的结合,首先,如果执行yield方法,会先设定该元素为可迭代元素,随后返回它的值,如下:
#对这个数字'2'进行yield方法
def num():
yield 2
for i in num():
print(i)
上述代码在python3.7中输出的值为2。
单独使用yield在’2’上如果没有将它用于迭代,yield的作用和return没有区别。
我们都知道,整数int型在python中属于不可迭代类型,如果在函数循环中,所填入的参数是一个整数n,想要使用函数不断返回一个n+2,这是不可能的
def try1():
n=1
while True:
n=n+2
return n
for x in try1():
if x<100