美文网首页
python学习-assert,lambda,filter的用法

python学习-assert,lambda,filter的用法

作者: 幽谷听泉 | 来源:发表于2016-10-12 13:20 被阅读0次
    assert 断言
    • 使用assert断言是个好习惯
    • 在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。
    • assert异常参数:在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题
    • assert用法
      assert 表达式 [, 异常提示字符串]
    • 示例如下:
      assert type(users) == list #断言users对象的类型为list
      assert len(users) >5 #断言users对象的元素个数大于5
    • assert异常时,会报AssertionError错误,其后会带上断言时的异常参数,这样方便排查出问题的地方。


      Paste_Image.png
    lambda
    • 函数格式:
      lambda [parameters]: commands
    • 函数功能:
        lambda创建匿名函数,而用def创建的方法是有名称的,它是一个表达式。优点:省去定义函数的过程,不需要考虑命名问题。
    • 命令实例:

    直接使用  
    print(lambda x:x+1(1)) #输出2,(1)是给x复制
    带1个参数  
    func1 = lambda x:x*2
    print(func1(3)) #结果为6
    带多个参数(可以初始化参数)
    func2 = lambda x,y,z=1: x+y+z
    print(func2(2,3)) #结果为6
    print(func2(2,3,4)) #结果为9

    filter()
    • filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中

    • filter()用法:
      filter(bool_function,list_arr |tuple_arr|set_arr)
      *示例:
      def getbigdata(x):
      if x>20:
      return True
      else:
      return False
      L = [1,2,4,5,35,8,22,11,29,81]
      big_L = filter(getbigdata,L)
      print(list(big_L))

      T = (16,20,45,5,35,8,22,11,29,81)
      big_T = filter(getbigdata,T)
      print(list(big_T))
      
      S = {16,20,45,5,35,8,22,11,29,81,1012}
      big_S = filter(getbigdata,S)
      print(list(big_S))
      
    • 输出结果


      Paste_Image.png

    相关文章

      网友评论

          本文标题:python学习-assert,lambda,filter的用法

          本文链接:https://www.haomeiwen.com/subject/ygriyttx.html