Python函数学习四-匿名函数和递归函数

本文介绍了Python中的匿名函数和递归函数。匿名函数使用lambda关键字,无需名称,适用于简单的一次性操作。示例中展示了如何定义和使用匿名函数进行乘法运算。递归函数则是通过函数自身调用来解决问题,文中给出了递归求和的例子以及使用递归实现的二分查找算法。递归函数在解决特定问题时非常有效,例如在搜索和排序算法中。
摘要由CSDN通过智能技术生成

匿名函数和递归函数
匿名函数:Python使用lambda来创建匿名函数。与用def关键字定义函数相比,没有函数名称。
1、匿名函数定义和特点
lambda[para1,para2,…]:expression
特点:
1)lambda后没有跟函数名
2)[para1,para2,…]参数是可选的,任何类型的,参数往往在后面的expression体现。
3)expression表达式实现匿名函数功能的过程,并返回操作结果,具有通常函数return的功能。
4)整个匿名函数在一行内实现所有定义。

如下:

a=lambda x,y:x*y  #定义匿名函数并赋值给a

print(a(2,3))

递归函数
递归(递归算法):在计算机科学中是指通过重复将问题分解为同类的子问题而解决问题的算法。
递归函数就是指利用函数实现递归算法的过程。递归函数通过自己调用自己来实现递归算法。
递归函数例子:

def r_sum(num):
    if num==1:
        return num
    return r_sum(num-1)+num  #自己调用自己,两个相邻数相加

print(r_sum(4))  #调用递归函数并打印结果

递归函数实现二分法查找

def r_dichotomy(nums,find,left,right):
    middle=(left+right)//2  #求商的整数,取中间值的下标
    if nums[middle]==find:
        return middle
    if right==left+1:  #若指定范围没有找到
        if nums[middle]!=find:
            return -1   #-1代表没找到
    if nums[middle]>find:
        return r_dichotomy(nums,find,left,middle)
    elif nums[middle]<find:
        return r_dichotomy(nums,find,middle,right)
nums_List=[1,2,3,4,5,6,7,8,10,12,16,30]
print(r_dichotomy(nums_List,4,0,len(nums_List)))  #z查找列表中元素值为4的元素下标


# 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值