day11 高阶函数

day11 高阶函数

  1. 匿名函数

    1. 匿名函数 - 没有函数名的函数

      • 函数名 = lambda 形参列表: 返回值

      • 相当于:
        def(形参列表):
        return 返回值

      • 注意: 匿名的本质还是函数, 之前函数中除了定义函数的语法以外的内容都适用于匿名

        # 求两个数的和的匿名函数
        sum1 = lambda num1, num2:num1 + num2
        
        # def sum1(num1, num2):
        #     return num1 +num2
        
        print(sum1(10, 20))
        
        
        #  练习: 写一个匿名函数判断指定的年是否是闰年
        is_leap_year = lambda years : (years % 4 == 0 and years % 100 != 0) or years % 400 == 0
        print(is_leap_year(2020))
        if is_leap_year:
            print('是闰年')
        else:
            print('平年')
        
  2. 高阶函数

    1. 函数就是变量

      • python中定义函数就是定义类型是function的变量, 函数名就是变量名

      • 普通变量能做的事情, 函数都可以做

        x = lambda num: num * 2
        print(type(x))  #<class 'function'>
        print(x(11))
        
        x = 10
        print(type(x))
        
        x = '1, 2, 3'
        print(type(x))
        x.replace()
        
        x = [1, 2, 3]
        print(type(x))
        x.append(100)
        
        x = {
                 'a':'1', 'b':'2'}
        print(type(x))
        print(x[1])
        
        
        #  func3是一个实参高阶函数   -   如果一个函数的参数就是函数, 那么这个函数就是实参高阶函数
        def func3(x, y, z, m):
            # x是长度大于等于2的有序序列
            print(x[1])
        
            # y是任何类型数据
            print(y)
        
            # z是字典
            print(z['a'])
        
            # m是函数
            m()
        
        
        def t1():
            print('x')
        
        func3('abc', 1, {
                 'a':100}, t1)
        func3('abc', 1, {
                 'a':100}, lambda x=10: x*2)
        
        
        #  func4是返回值高阶函数    -   如果一个函数的返回值是函数, 那么这个函数就是返回值高阶函数
        def func4():
            # name = '张三'
            # return name
            def t2():
                print('你好!')
            return  t2
        
        result = func4()()
        print('===================', result)
        
        
        # 练习:
        list3 = []
        for x in range(5):
            list3.append(lambda i: x*i)
        print(list3[0][2])
        print(list3[1][2])
        print(list3[2][2])
        
    2. 实参高阶函数

      • python中常用的实参高阶函数:max、min、sorted、map、reduce

        1. max和min

          • max(序列, key=函数) - 按照key对应的函数指定的规则来获取序列中元素的最大值
          • 函数的要求: 1) 有且只有一个参数 (这个参数指向的是序 列中的元素)
            2) 有一个返回值 (比较大小的对象)
        2. sorted

          • sorted(序列, key = 函数)

            students = [
                {
                         'name': '小明', 'age': '18', 'score': '52'},
                {
                         'name': '小红', 'age': '12', 'score': '98'},
                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值