This topic created in 3981 days ago, the information mentioned may be changed or developed.
def _odd_iter():
n = 1
while True:
n = 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) # 这里不懂:filter()不是把_not_divisible(n)返回的函数依次作用于it的每个元素上吗? it不是一个无限序列吗?filter()是什么时候执行结束的??
for n in primes():
if n < 1000:
print(n)
else:
break
求帮助,求解答!!
22 replies • 2018-08-26 19:00:50 +08:00
 |
|
1
hitsmaxft Jul 16, 2015
for n in primes(): if n < 1000: print(n) else: break # 看这里。
你得看看 yied 语法和 generator 的关系
|
 |
|
2
kxxoling Jul 16, 2015
看了你的两个问题,我想说别看在线教程,廖雪峰的 Python 写得并不怎么样。啄木鸟论坛有几本开源书籍,写得都挺好,建议你还是拿本书来看。最后,贴这种格式的 Python 代码真让人无语。
|
 |
|
3
wangyongbo Jul 16, 2015
没有缩进真的很难看明白。
看代码知道你用的应该是Python3 python3 里的 filter 返回的也是一个可迭代的对象,所以你这个代码,调用filter 的时候并没有立刻计算出结果,只是需要的时候,才会算出来一个。
|
 |
|
5
yuankui Jul 17, 2015
同学,多看看书 这种问题问多了,容易被拉黑,切记切记...
|
 |
|
6
nevin47 Jul 17, 2015
只想说……点进来一看代码整个人就炸了 def _odd_iter(): n = 1 while True: n = n + 2 yield n
写成这样多舒服……
|
 |
|
7
nevin47 Jul 17, 2015
卧槽,打脸了…… 说好的V站支持Markdown呢……四空格的代码引用为何没了……
|
 |
|
13
gilgamesh Jul 17, 2015 via Android
手抖楼上@错了
|
 |
|
14
USCONAN Jul 17, 2015
。。。你們可以的 花樣演示 V2EX 的正確使用方法。。。
|
 |
|
15
loveuqian Jul 17, 2015
```objc - (void)scrollViewDidEndDragging:(nonnull UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { if (NO == decelerate) { [self scrollViewDidEndDecelerating:scrollView]; } } ``` OC代码乱入,试下 markdown
|
 |
|
17
zerh925 Jul 17, 2015
笑死我了,评论比帖子本身好看系列
|
 |
|
19
KwenString Jul 17, 2015
有感为什么python社区没有建立一个类似ruby-china的地方
|
 |
|
20
hellozzz Jul 18, 2015
这本书练习熟练了能找到多少钱的python初级开发呢
|
 |
|
21
supermaryy Jun 25, 2018
可以挖坟吗?题主的问题我也遇到了,没有懂,谁来解释一下
|