Discuss
/
Python
/
求各位大神指点:求100以内的素数,下面用for in循环代替例子中的next结果为啥是2-20的所有数?it = filter(_not_divisible(n), it) 好像没有执行一样
求各位大神指点:求100以内的素数,下面用for in循环代替例子中的next结果为啥是2-20的所有数?it = filter(_not_divisible(n), it) 好像没有执行一样
Topic sourceit=range(2,20+1) for n in it: print(n) it = filter(_not_divisible(n), it) 首先你在循环外给it赋值,那么for循环取到的数值列表就是[2,3,4,5,6,...,20] 然后进入for循环,首先打印列表中第一个元素2,之后你的操作虽然是踢出后重新赋值给it,for循环的结束条件是列表中的元素全部跑完,那么还是按照原先的列表[2,3,4,5,...,20]继续执行,每次执行的第一步就是打印这个元素。至于后边的it赋值语句虽然执行,但是不会改变循环中列表的元素。 在你的it = filter(_not_divisible(n), it)后边加上一句print(it)你就知道了
- 1
花泽的类
def _not_divisible(n): return lambda x: x % n > 0
def primes():