看廖雪峰的 Python 教程 关于这一段有不懂啊,求帮助, thanks~

2015-07-16 20:55:25 +08:00
 larry618
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

求帮助,求解答!!
5610 次点击
所在节点    Python
22 条回复
hitsmaxft
2015-07-16 21:58:35 +08:00
for n in primes():
if n < 1000:
print(n)
else:
break # 看这里。

你得看看 yied 语法和 generator 的关系
kxxoling
2015-07-16 22:27:18 +08:00
看了你的两个问题,我想说别看在线教程,廖雪峰的 Python 写得并不怎么样。啄木鸟论坛有几本开源书籍,写得都挺好,建议你还是拿本书来看。最后,贴这种格式的 Python 代码真让人无语。
wangyongbo
2015-07-16 22:45:30 +08:00
没有缩进真的很难看明白。

看代码知道你用的应该是Python3
python3 里的 filter 返回的也是一个可迭代的对象,所以你这个代码,调用filter 的时候并没有立刻计算出结果,只是需要的时候,才会算出来一个。
Ironsongming
2015-07-16 23:54:35 +08:00
@kxxoling 没有缩进的python能叫python?
yuankui
2015-07-17 00:16:07 +08:00
同学,多看看书
这种问题问多了,容易被拉黑,切记切记...
nevin47
2015-07-17 00:19:22 +08:00
只想说……点进来一看代码整个人就炸了
def _odd_iter():
n = 1
while True:
n = n + 2
yield n

写成这样多舒服……
nevin47
2015-07-17 00:20:17 +08:00
卧槽,打脸了……
说好的V站支持Markdown呢……四空格的代码引用为何没了……
slayerdoomsday
2015-07-17 00:23:16 +08:00
楼上的也是醉了。。
nevin47
2015-07-17 00:24:59 +08:00
@slayerdoomsday 别嘲笑我……我已经给自己醉了……
但是我还是想知道为什么不支持代码引用……
itommy
2015-07-17 00:36:51 +08:00
贴代码都用这个吧
https://gist.github.com
gilgamesh
2015-07-17 00:57:57 +08:00
@nevin47 请用三个反引号
gilgamesh
2015-07-17 00:58:37 +08:00
@itommy 而且评论只支持 gist 代码……
gilgamesh
2015-07-17 00:59:01 +08:00
手抖楼上@错了
USCONAN
2015-07-17 01:12:40 +08:00
。。。你們可以的
花樣演示 V2EX 的正確使用方法。。。
loveuqian
2015-07-17 01:28:24 +08:00
```objc
- (void)scrollViewDidEndDragging:(nonnull UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
{
if (NO == decelerate) {
[self scrollViewDidEndDecelerating:scrollView];
}
}
```
OC代码乱入,试下 markdown
loveuqian
2015-07-17 01:28:34 +08:00
坑爹。。还是睡了。。。
zerh925
2015-07-17 08:30:24 +08:00
笑死我了,评论比帖子本身好看系列
falcon05
2015-07-17 09:15:25 +08:00
居然没有一个贴对的…😂
KwenString
2015-07-17 16:02:12 +08:00
有感为什么python社区没有建立一个类似ruby-china的地方
hellozzz
2015-07-18 12:35:20 +08:00
这本书练习熟练了能找到多少钱的python初级开发呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/206224

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX