This topic created in 3953 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 可以挖坟吗?题主的问题我也遇到了,没有懂,谁来解释一下 |