• 十四天:匿名函数


    匿名函数

    匿名就是没有名字,所以他就没办法调用,只能和某些方法联用

    匿名函数语法 :lambda 参数:返回值

    但是你如果真的想调用匿名函数,也可以赋值,但是他就变成了有名函数

    f = lambda x,y : x**y
    res = f(1,2)
    print(res)
    

    匿名函数基本上都是和内置方法联用

    max/min 返回最大值/最小值

    salary_dict = {
         'nick': 3000,
         'jason': 100000,
         'tank': 5000,
         'sean': 2000,
         'z': 1000
    }
    
      def func(name):  # nick/jason/tank/sean/z
          return salary_dict[name]  # 3000/100000/5000/2000/1000
     res = max(salary_dict, key=func)  # 默认key的首字母
    
     res = max(salary_dict, key=lambda name: salary_dict[name])  # 默认key的首字母
     print(res)
     # key=func默认做的事情
     # 1. 循环遍历salary_dict,会取到所有的key值
     # 2. 然后把所有的key值依次丢入func中,返回薪资
     # 3. 通过返回的薪资排序,得到最大值
    
     res = min(salary_dict, key=lambda name: salary_dict[name])
     print(res)
    

    fileter 筛选

    def function(item):  # 1/2/3/4
        if item < 5:
             return True
         else:
             return False
    
    
    res = filter(function, [1, 2, 3, 4])
    res = filter(lambda item: item > 2, [1, 2, 3, 4])
    print(res)  # 迭代器
    print(list(res))
    
     salary_dict = {
         'nick': 3000,
         'jason': 100000,
         'tank': 5000,
         'sean': 2000,
         'z': 1000
     }
    
     res = filter(lambda item: salary_dict[item] > 3000, salary_dict)
     print(list(res))
    

    map 映射

     def function1(item):
         return item + 2
    
    
     res = map(function1, [1, 2, 3, ])
     print(res)
     print(list(res))
        
       
    
    salary_dict = {
         'nick': 3000,
         'jason': 100000,
         'tank': 5000,
         'sean': 2000,
         'z': 1000
     }
    
    res = map(lambda salary:salary_dict[salary] +500,salary_dict)
    print(list(res))
    
    

    内置函数

    或许能用到的

    byte()解码字符

    char()/ord()

    char()参考ASCII吗表将数字装成对应字符串;ord()佳能字符串转成对应数字

    divmod()分栏,编程中的整除求余

    print(divmod(10,3))  # (3,1)
    #                 整数部   余数部
    

    enumerate() 英语释义枚举,python中是带有索引的迭代

    lt = ['a','b,'c']
    for i in enumerate(lt)
     	print(i) 
    # (0,'a')
    # (1,'b')
    # (2,'c')
    

    eval() 评估,把字符串翻译成数据类型

    lis = '[1,2,3]'
    lis_eval = eval(lis)
    print(lis_eval)
    # [1,2,3]
    

    hash()判断是否可哈希

    不一定用的到的

    1. abs:绝对值
    2. all:可迭代对象内元素全为真,则返回真。
    3. any:可迭代对象中有一元素为真,则为真。
    4. bin/oct/hex:二进制、八进制、十六进制转换
    5. dir:列举出模块所有的功能。
    6. frozenset:不可变集合
    7. gloabals/locals:查看全局名字/查看当前位置名字
    8. pow:
    9. round:
    10. slice:
    11. sum:
    12. _import_:通过字符串导入模块

    异常处理的部分用法

     异常处理: 报了错,进行处理
    #
    # print(1)
    # num = input('请输入数字:')
    #
    # dic = {'a': 1}
    #
    # try:
    #
    #     print(dic['b'])  # KeyError
    #     1 / int(num)  # 报错之后,不运行下面的代码
    #
    # except ZeroDivisionError:
    #     print('傻逼,不能输入0')
    # except KeyError:
    #     print('傻逼,不知道什么错误')
    #
    # print(2)
    
    
    # print(1)
    # num = input('请输入数字:')
    #
    # dic = {'a': 1}
    #
    # try:
    #
    #     print(dic['b'])  # KeyError
    #     1 / int(num)  # 报错之后,不运行下面的代码
    #
    # except Exception as e:  # 万能异常,只要有错误,就捕捉
    #     print(e)  # 错误的描述信息
    #     print('傻逼,不知道什么错误')
    #
    # print(2)
    
    # # 异常捕捉只能捕捉逻辑错误
    # fr = open('test.py')
    # try:
    #     # 文件中途报错
    #     1 / 0
    #     fr.close()
    # except Exception as e:
    #     print(e)
    # finally:  # 无论你包不报错,都执行这一行
    #     print('finally')
    
    
    
    # assert 断言 + 条件--> 被历史淘汰了
    #
    # num = input('num:')
    #
    #
    # assert 1==int(num)
    
    
    
    
    
    # raise 主动抛错误
    
  • 相关阅读:
    Mahout机器学习平台之聚类算法具体剖析(含实例分析)
    算法导论 动态规划 钢条分割问题的自底向上解法
    玩转Linux网络namespace-单机自环測试与策略路由
    Unity KillCount
    android 项目中使用到的网络请求框架以及怎样配置好接口URL
    Gradle 1.12 翻译——第十四章. 教程
    MySQL 性能优化
    Git教程
    Eclipse常用小知识汇总
    自定义全局异常捕获
  • 原文地址:https://www.cnblogs.com/lyyblog0715/p/11588561.html
Copyright © 2020-2023  润新知