美文网首页
Python学习25:匿名函数和递归函数

Python学习25:匿名函数和递归函数

作者: 简洁的书写 | 来源:发表于2024-09-03 21:16 被阅读0次

           在之前面学习了定义函数、调用函数以及设置函数的参数。现在将会补充函数中两个常见的知识点,一个是匿名函数,另一个是递归函数。

           在前面,我们使用def 函数名(参数):的结构来定义一个函数。如果,我们把def定义的函数看作“有名字函数”。那么还有一类函数,无需定义函数名,即匿名函数。

           匿名函数(Anonymous Function)这段代码创建了一个匿名函数,并赋值给了变量square。然后通过变量名square调用函数,输出了结果。

    # 使用lambda创建匿名函数,并赋值给变量square
    square = lambda  x:x*x     
    # 通过变量名square,传入参数9,调用该匿名函数,并输出
    print(square(9))

    lambda:lambda是一个关键字,用来创建匿名函数。
    空格:关键字lambda和后面的式子间要有一个空格,这是创建匿名函数的固定格式。
    形参:冒号前面的x是匿名函数的参数,也就是形参,用于接收实参传递来的数据。
    冒号:一个冒号是匿名函数的固定格式。冒号前面是形参,冒号后面是进行计算的表达式。
    表达式:冒号后面的表达式就是函数的返回值。表达式的结果将返回到调用函数的地方。所以,匿名函数可以看作return型函数的简便写法。
    变量:将匿名函数,赋给一个变量(这里是square)。后续可以通过该变量来调用匿名函数。
    调用函数:只要将匿名函数赋值给了变量,就需要通过对应的变量名来调用函数。本例中,通过变量square来调用该匿名函数,在括号()中传入了实参9。

    多个形参

    匿名函数也可以设置多个形参,形参间以逗号隔开。

    立方体体积
    定义一个“匿名函数”,用于返回立方体的体积,并将其赋值给变量power。
    然后通过该变量名,传入参数10, 8, 6,调用函数,并输出计算的结果。
    体积公式为:长*宽*高

    # TODO 定义匿名函数,设置三个形参,用于返回立方体的体积,并赋值给变量power
    power = lambda a,b,c:a*b*c
    # TODO 通过变量名,依次传入参数10,8,6,调用该匿名函数,并输出
    print(power(10,8,6))

    匿名函数的局限性

         匿名函数使用起来比较方便,但是它也有局限性。一般只能用来改写包含了return的简单函数。示例中,是匿名函数和普通函数的等价写法。

    递归(Recursive),将函数在定义中调用函数自身的过程称为递归。

    示例:这段函数定义一个求和函数sum,并通过递归的方式求得了5以内的数字的累加和。

    # 定义名为sum()函数,传入参数n
    def sum(n):
        if n == 1:
            return 1
        return n + sum(n-1)
    # 调用sum()函数,传入参数5,并输出
    print(sum(5))

    相关文章

      网友评论

          本文标题:Python学习25:匿名函数和递归函数

          本文链接:https://www.haomeiwen.com/subject/megkljtx.html