找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 285|回复: 8

[求助] 关于高阶函数的一个小例子问题

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计 发表于 2018-10-13 22:31:55 | 显示全部楼层 |阅读模式
本帖最后由 影龙设计 于 2018-10-13 22:46 编辑

复制代码
def naturl():
   i = 1
    while True:
        i = i +
2
        yield i
def not_divisible(n):
    return lambda x: x % n

def primes():
   
yield 2
    it = naturl()
   
while True:
        n =
next(it)
        
yield n
        
a = not_divisible(n)
        it =
filter(a, it)
for i in primes():
   
if i < 1000:
        
print(i)
   
else:
        
break
上面是求素数序列的小案例
我希望把not_divisible直接整合到primes中,如下:def naturl():
    i =
1
    while True:
        i = i +
2
        yield i
def primes():
   
yield 2
    it = naturl()
   
while True:
        n =
next(it)
        
yield n
        
a = lambda x: x % n
        it =
filter(a, it)
for i in primes():
   
if i < 1000:
        
print(i)
   
else:
        
break
上面的运行正确,下面的运行结果错误,请问下面的改动为什么错了,原理是什么?



回复

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计  楼主| 发表于 2018-10-14 08:22:28 | 显示全部楼层
求大佬解答
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计  楼主| 发表于 2018-10-21 09:27:34 | 显示全部楼层
求大佬解答
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计  楼主| 发表于 2018-10-22 00:02:45 | 显示全部楼层

求大佬解答
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计  楼主| 发表于 2018-10-22 00:08:25 | 显示全部楼层

求大佬解答。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。哎,第一帖,没人理,伤心ing
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
wei 发表于 2018-10-22 17:19:14 | 显示全部楼层
a = lambda x: x % n    n是未知数,上边通过函数实参传递了n,下面的没有传变量,lambda中是不识别第二段的上边的变量n的
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计  楼主| 发表于 2018-10-24 11:51:53 | 显示全部楼层
wei 发表于 2018-10-22 17:19
a = lambda x: x % n    n是未知数,上边通过函数实参传递了n,下面的没有传变量,lambda中是不识别第二段 ...

上面的那个函数里面的return中  lambda后面的n难道就不算变量了吗
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
影龙设计  楼主| 发表于 2018-12-6 09:53:06 | 显示全部楼层
难道函数中的参数,不算变量吗?
回复 支持 反对

使用道具 举报

0

主题

7

帖子

7

积分

贫民

积分
7
zyj321321321 发表于 2018-12-6 13:55:34 | 显示全部楼层
运行了一下发现第二段代码只打印奇数,也不懂其中原因,猜测是变量存储先后的问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表