博客
关于我
python 高阶函数作业(3.16)
阅读量:510 次
发布时间:2019-03-07

本文共 1851 字,大约阅读时间需要 6 分钟。

总结

  • 实参高阶函数

    • Python中定义函数时,定义的变量可以接收函数类型的参数。
    • 如果一个函数的参数是另一个函数,那么这个函数就是实参高阶函数。
    • 实参高阶函数的典型例子是lambda函数和装饰器。
  • max和min函数

    • max和min函数可以接收序列和一个key参数。
    • key参数是一个函数,用来决定比较对象。
    • 例如,max(nums, key=lambda x: x%10)会根据x的个位数找到最大的数。
    • 练习:返回列表中各位数和最大的值。
      def sum1(x):    x = str(x)    s = 0    for i in x:        s += int(i)    return snums = [28, 607, 65, 19, 88]result = max(nums, key=sum1)print(result)
  • map函数

    • map函数将一个函数应用到序列中的每个元素。
    • 它可以接收多个序列,每个位置的元素组合使用函数。
    • 例如,map(lambda x: x*2, [1,2,3])会将每个数字乘以2。
    • 练习:将两个列表中的元素相加,创建一个新的列表。
      nums1 = [23, 433, 43, 2, 432]nums2 = [1, 2, 3, 4, 5]result = map(lambda item1, item2: item1 + item2, nums1, nums2)print(list(result))
  • reduce函数

    • reduce函数将序列中的元素通过某种累积操作合并成一个结果。
    • 它需要一个函数,用于将当前结果和下一个元素进行操作。
    • 例如,reduce(lambda x, y: x + y, [1,2,3])会计算1+2+3。
    • 练习:计算列表中所有数字的和。
      message = ['你好', 20, '30', 5, 6.89, 'hello']result = reduce(lambda x, item: x + item if type(item) in (int, float) else x + 0, message, 0)print(result)
  • 装饰器

    • 装饰器是高阶函数,它可以为函数添加功能。
    • 例如,可以为函数添加打印执行时间的功能。
    • 练习:写一个装饰器,将函数的返回值乘2再返回。
      def multiply_by_2(f):    def new_f(*args, **kwargs):        result = f(*args, **kwargs)        if isinstance(result, (int, float, str, list, tuple, bool)):            return result * 2        else:            print('输入不符合条件!')return new_f@multiply_by_2def func2(str1):    return str1str_input = input('请输入:')print(func2(str_input))
  • 补充 * 和 ** 用法

    • *用法表示将传入的位置参数作为元组传递。
    • **用法表示将字典式参数解包到函数参数中。
    • 例如,函数定义:def f(*nums):print(nums),调用f(2,3,4)会输出(2,3,4)。
    • 练习:解包和打包的应用。
      def f1(*nums):    print(nums)f1(2,3,4)
  • 更多练习

    • 列表绝对值最大的元素:max(nums, key=lambda x: abs(x))。
    • 创建字典:map(lambda item1, item2: {item1: item2}, A, B)。
    • 三个列表拼接成一个字典:map(lambda item1, item2, item3: [item1, item3+item2], names, nums, subjects)。
    • 计算数字和:reduce(lambda x, item: x+item, [x for x in message if type(x) in (int, float)], 0)。
  • 通过这些练习,我对Python的高阶函数和装饰器有了更深入的理解。这些工具在实际编程中非常有用,可以帮助提高代码的效率和可读性。继续练习和探索,我相信自己会在Python编程中越来越自信。

    转载地址:http://yrrjz.baihongyu.com/

    你可能感兴趣的文章
    npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
    查看>>
    npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
    查看>>
    npm install digital envelope routines::unsupported解决方法
    查看>>
    npm install 卡着不动的解决方法
    查看>>
    npm install 报错 EEXIST File exists 的解决方法
    查看>>
    npm install 报错 ERR_SOCKET_TIMEOUT 的解决方法
    查看>>
    npm install 报错 fatal: unable to connect to github.com 的解决方法
    查看>>
    npm install 报错 no such file or directory 的解决方法
    查看>>
    npm install 权限问题
    查看>>
    npm install报错,证书验证失败unable to get local issuer certificate
    查看>>
    npm install无法生成node_modules的解决方法
    查看>>
    npm install的--save和--save-dev使用说明
    查看>>
    npm node pm2相关问题
    查看>>
    npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
    查看>>
    npm run build报Cannot find module错误的解决方法
    查看>>
    npm run build部署到云服务器中的Nginx(图文配置)
    查看>>
    npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
    查看>>
    npm scripts 使用指南
    查看>>
    npm should be run outside of the node repl, in your normal shell
    查看>>
    npm start运行了什么
    查看>>