Python返回函数

  • 高阶函数除了可以接收函数作为参数,还可把函数作为一个返回结果
  • 例如一个求和函数,调用的时候则可返回求和结果,如果不想立即返回结果,可在后面根据需要再使用
def sum(*args):#位置可变的位置参数
    s=0
    for n in args:
        s+=n
    return s

f=sum(1,2,3,4,5)
print(f)

15

def sum(*args):#位置可变的位置参数
    def sum_args():
        s=0
        for n in args:
            s+=n
        return s
    return sum_args

f=sum(1,2,3,4,5)
print(f)
print(f())

<function sum..sum_args at 0x000001F6998B99D0>
15

  • 再如如何获得质数呢?
#思路:先得到所有的奇数保存到生成器中,再过滤掉生成器中能够被小于其本身奇数整除的数
def odd_num():
    n=1
    while True:
        n+=2
        yield n#生成器n中是所有的奇数

#判断是否能被整除的函数
def my_filter(n):
    return lambda x:x%n>0

#质数生成器
def t():
    yield 2
    g=odd_num()
    while True:
        x=next(g)#从生成器中拿到一个奇数
        g=filter(my_filter(x),g)#过滤后再赋值给g
        yield x

for n in t():
    '''print(n)
       会是一个死循环,因为得到的是所有的质数,可以指定条件
    '''
    if n<20:
        print(n)
    else:
        break

2
3
5
7
11
13
17
19

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值