函数——匿名函数+递归函数

  1. 匿名函数

    '''
    匿名函数:
      lambda 参数列表:表达式
    
      作用:
      简化函数,轻量型函数
      1.没有函数名
      2.一句话搞定
    
    '''
    
    # def get_sum(a, b):
    #     return a + b
    
    
    result = lambda a, b, c: a + b + c
    
    print(result)
    
    print(result(1, 2, 3))
    
    # 使用场合就是作为参数使用
    
    list1 = [1, 4, 8, 9]
    print(sorted(list1))
    
    list2 = [('lily', 18), ('lucy', 20), ('jack', 19)]
    print(sorted(list2))
    
    result = lambda x: x % 2 == 0
    print(result(5))
    
    result = lambda x, y=10: x * y
    
    print(result(6))
    print(result(3, 8))
    
    
    # def f(x,y=10):
    #     return x*y
    #
    # f(6)
    
    
    def f1(x, func):
        r = func(x)
        return r
    
    
    r = f1(5, lambda x: x % 2 == 0)
    print(r)
    

     

  2. 递归函数

    '''
      如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数
      原则:1. 要有出口  2. 不断的向出口靠近
    '''
    # 打印1-10的数字
    for i in range(1, 11):
        print('for--->', i)
    
    # while
    count = 1
    while count <= 10:
        print('while--->', count)
        count += 1
    
    # 通过函数实现
    count = 1
    
    
    def f():
        global count
        if count == 10:
            # 符合终止条件,不调用自身
            print('func--->', count)
        else:
            print('func--->', count)
            count += 1  # 不断的向出口
            f()  # 递归还没有停止
    f()
    
    '''
       有返回值的递归函数
    '''
    count = 1
    
    
    def f():
        global count
        if count == 3:
            # 符合终止条件,不调用自身
            print('func--->', count)
        else:
            print('func--->', count)
            count += 1  # 不断的向出口
            r = f()  # 递归还没有停止
            print('*****>', r)
        return count
    
    
    result = f()
    print('最后的result:', result)
    
    
    # 递归函数:1-5的累加和
    
    
    def f2(n):
        if n == 5:
            return 5
        else:
            return n + f2(n + 1)
    
    
    result = f2(1)
    print(result)
    
    
    # 计算
    # 斐波那契数列问题:
    # 1,1,2,3,5,8,13,21,34.。。
    def fib(n):
        if n <= 2:
            return 1
        return fib(n - 1) + fib(n - 2)
    
    
    result = fib(3)
    print(result)
    

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值