python快速入门-10-匿名函数、递归函数

一、匿名函数

匿名函数:没有名字的函数,在Python中用lambda定义

lambda 形参1, 形参2, 形参3: 表达式
lambda x, y: x + y 

可以用一行代码完成简单的函数定义,可以当做实参快速传递到函数中去,lambda函数能接收任何数量的参数但只能返回一个表达式的值,其默认就是返回的,不用写return

一般情况下对匿名函数的使用有2种方式
通过lambda定义匿名函数,然后用一个变量指向这个匿名函数,然后通过变量名()调用这个匿名函数

# 定义了一个匿名函数,然后让变量add_2_nums指向它
add_2_nums = lambda x, y: x + y

# 调用add_2_nums指向的匿名函数
print("10+20=%d" % add_2_nums(10, 20))

直接在调用其它函数实参的位置通过lambda定义匿名函数,会将这个匿名函数的引用当做实参进行传递

def fun(a, b, opt):
    print("a = %d" % a)
    print("b = %d" % b)
    print("result = %d" % opt(a, b))  # 此时opt指向了第7行定义的匿名函数,所以opt(a, b)就相当于调用匿名函数


fun(5, 2, lambda x, y: x * y)  # 定义一个匿名函数,且将它的引用当做实参进行传递

二、递归函数

一个函数在函数体中又调用了自己,这样的函数叫递归函数

示例 实现计算阶乘 n! = 1 * 2 * 3 * … * n

def mult_nums(n):
    if n > 1:
        return n * mult_nums(n-1)
    else:
        return 1


ret = mult_nums(4)  # 计算4的阶乘,结果为24
print(ret)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值