4.5 lambda 表达式

  1. 用于表示简单的函数。

    # 三元运算,为了解决简单的if else的情况,如:
    if 1 == 1:
       a = 123
    else:
       a = 456
    # 相当于
    a = 123 if 1==1 else 456
    print(a)
    # lambda表达式,为了解决简单函数的情况,如:
    def funa(a1,a2):
       return a1 + 100
    print(funa(1,3)) # 101
    # 相当于
    func = lambda a1,a2: a1+100
    print(func(1,3)) # 101
    # 示例一
    func1 = lambda : 100
    print(func1()) #
    func2 = lambda x1: x1 * 10
    print(func2(2)) #

    func3 = lambda *args,**kwargs: len(args) + len(kwargs)
    print(func3("a","b","c",k="sdfgg",a = "dfgjh")) #

    # 示例二
    DATA = 100
    func4 = lambda a1: a1 + DATA
    v = func4(1)
    print(v) #

    # 示例三
    DATA = 100
    def func():
    DATA = 1000
    func4 = lambda a1: a1 + DATA
    v = func4(1)
    print(v) #
    func()

    # 示例四
    func5 = lambda n1,n2: n1 if n1 > n2 else n2
    v = func5(1111,2)
    print(v) #
    # 练习题1
    USER_LIST = []
    def func0(x):
    v = USER_LIST.append(x)
    return v

    result = func0('alex')
    print(result) # None
    print(USER_LIST) # ['alex']

    # 练习题二
    def func0(x):
    v = x.strip()
    return v

    result = func0(' alex ')
    print(result) # alex

    # 练习题三
    func_list = [lambda x:x.strip(), lambda y:y+199,lambda x,y:x+y]

    v1 = func_list[0]('alex ')
    print(v1) #alex

    v2 = func_list[1](100)
    print(v2) #

    v3 = func_list[2](1,2)
    print(v3) #
     

4.6 内置函数

  1. 强制转换

    • dict() list() tuple() int() str() bool() set()

  2. 输入和输出

    • input print

  3. 其他函数

    • len(长度) open(打开) id(查看内存) range(输出列表) type(查看类型)

  4. 数学相关

    • abs(绝对值) float(转成浮点型:小数) max(找到最大值) min(找到最小值) sum(求和) divmod(求两数相除商和余数,多用于分页)

    v = abs(-1)
    print(v) #

    v = 55
    v1 = float(55)
    print(v1) # 55.0

    v = [1,2,311,21,3,]
    result = max(v)
    print(result) #

    v = [1,2,311,21,3,]
    result = min(v)
    print(result) #

    v = [1,2,311,21,3,]
    result = sum(v)
    print(result) #

    a,b = divmod(1001,5)
    print(a,b) # 200 1
  5. 进制转换

    • bin,将十进制转化成二进制(0b)

      num = 13
      v1 = bin(num)
      print(v1) # 0b1101
    • oct,将十进制转换成八进制(0o)

      num = 8
      v1 = oct(num)
      print(v1) # 0o10
    • int,将其他进制转化成十进制

      # 二进制转化成十进制
      v1 = '0b1101'
      result = int(v1,base=2)
      print(result) #13

      # 八进制转化成十进制
      v1 = '0o1101'
      result = int(v1,base=8)
      print(result) # 577

      # 十六进制转化成十进制
      v1 = '0x1101'
      result = int(v1,base=16)
      print(result) # 4353
    • hex,将十进制转换成十六进制(0x)

      num = 16
      v1 = hex(num)
      print(v1) # 0x10
  6. 编码相关

    • chr,将十进制数字转换成unicode编码中的对应字符。

      v = chr(99)
      print(v) # c
    • ord,将字符转换成unicode编码中的对应数字

      num = ord('中')
  7. 高级函数

    • map,会根据提供的函数对指定序列做映射

      • 第一个参数必须是一个函数

      • 第二个函数必须是可迭代类型(可以for循环)

      • py2最后返回一个列表;py3最后返回一个对象(节省内存)

      循环每个元素(第二个参数),然后让每个元素执行函数(第一个)参数,将每个函数 执行的结果保存到新的列表中,并返回。

      v1 = [11,22,33,44]
      result = map(lambda x :x+100,v1)
      print(list(result))#[111, 122, 133, 144]
    • filter,函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

      循环每个元素(第二个参数),然后让每个元素执行函数(第一个)参数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

      # 示例一
      v1 = [11,22,33,'fgd','egfghg',44,'sdf']
      def func(x):
         if type(x) == int:#判断v1元素是不是整型
             return True#返回
         return Flase
      result = filter(func,v1)#循环v1执行函数func,真的新建列表[11,]
      print(list(result))#输出result,默认是对象,转化为列表

      # 等于
      result = filter(lambda x: True if type(x) == int else False ,v1)
      print(list(result))

      # 等于
      result = filter(lambda x: type(x) == int ,v1)
      print(list(result))
    • reduce,函数会对参数序列中元素进行累积。

      函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

      # 示例
      import functools
      v1 = ['wo','hao','e']

      def func(x,y):
         return x+y
      result = functools.reduce(func,v1)
      print(result)#wohaoe

      # 等于
      result = functools.reduce(lambda x,y:x+y,v1)
      print(result)
  8. type,查看类型/判断对象是否是类的实例(找到头)

    class Foo:
       pass

    obj = Foo()

    if type(obj) = Foo:
       print("obj是Foo类的对象")
  9. issubclass 判断类是否是子类(到头都是)

    class Asd():
       pass

    class Base(Asd):
       pass

    class Base1(Base):
       pass

    class Foo(Base1):
       pass

    class Bar:
       pass

    print(issubclass(Bar,Base)) # False
    print(issubclass(Foo,Asd)) # True
  10. isinstance 判断obj是否是Foo类或其基类的实例(对象),找到头都是

    class Asd:
       pass

    class Base(Asd):
       pass

    class Foo(Base):
       pass

    obj = Foo()

    print(isinstance(obj,Foo))
    print(isinstance(obj,Asd))
  11. super 根据self对象所属类的继承关系,按照顺序挨个找func方法并执行(找到第一个就不在找了)

    class Bar(object):
       def func(self):
           print('bar.func')
           return 123

    class Base(Bar):
       pass

    class Foo(Base):
       def func(self):
           v1 = super().func()
           print('foo.func',v1)

    obj = Foo() # bar.func
    obj.func() # foo.func 123
    # super().func() 根据类的继承关系,按照顺序挨个找func方法并执行(找到第一个就不在找了)
    class Base(object): # Base -> object
       def func(self):
           super().func()
           print('base.func')

    class Bar(object):
       def func(self):
           print('bar.func')

    class Foo(Base,Bar): # Foo -> Base -> Bar
       pass

    obj = Foo()
    obj.func() # bar.func base.func
  12. 总结

    • 函数当作是一个变量:参数传值 / 当元素嵌套到字典列表中。 5*

    • lambda 表达式 3*

    • 内置函数 3*

第四章 函数之lambda 表达式和内置函数的更多相关文章

  1. 【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数

    lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. de ...

  2. lambda表达式、内置函数、进制和文件操作

    lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...

  3. lambda 表达式+python内置函数

    #函数 def f1(a,b): retrun  a+b #lambda方式,形参(a,b):返回值(a+b) f2=lambda a,b : a+b 在一些比较简单的过程计算就可以用lambda p ...

  4. python入门之lambda表达式、内置函数

    lambda 简单的函数就可以用lambda表达式 格式: abc = lambda a1,a2:a1+a2 其中,传参是a1和a2,返回值是a1+a2 内置函数 abs(a) #取绝对值 all(a ...

  5. 十、lambda表达式、内置函数之filter、map、reduce

    lambda表达式   学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 == : name = 'wupeiqi' else: name = 'ale ...

  6. python — lambda表达式与内置函数

    目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): == ...

  7. 第四章:Python基础の快速认识內置函数和操作实战

    本課主題 內置函数介紹和操作实战 装饰器介紹和操作实战 本周作业 內置函数介紹和操作实战 返回Boolean值的內置函数 all( ): 接受一個可以被迭代的對象,如果函数裡所有為真,才會真:有一個是 ...

  8. 学习Python函数笔记之二(内置函数)

    ---恢复内容开始--- 1.内置函数:取绝对值函数abs() 2.内置函数:取最大值max(),取最小值min() 3.内置函数:len()是获取序列的长度 4.内置函数:divmod(x,y),返 ...

  9. Python函数04/生成器/推导式/内置函数

    Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...

随机推荐

  1. RabbitMQ入门学习系列(五) Exchange的Direct类型

    快速阅读 利用Exchange的Direct类型,实现对队列的过滤,消费者启动以后,输入相应的key值,攻取该key值对应的在队列中的消息 . 从一节知道Exchange有四种类型 Direct,To ...

  2. 第07组 Alpha冲刺(3/6)

    队名:摇光 队长:杨明哲 组长博客:求戳 作业博客:求再戳 队长:杨明哲 过去两天完成了哪些任务 文字/口头描述:对后端功能进一步完善. 展示GitHub当日代码/文档签入记录:(组内共用,已询问过助 ...

  3. useRef获取DOM元素和保存变量(十)

    useRef在工作中虽然用的不多,但是也不能缺少.它有两个主要的作用: 用useRef获取React JSX中的DOM元素,获取后你就可以控制DOM的任何东西了.但是一般不建议这样来作,React界面 ...

  4. Android系统Audio框架介绍【转】

    本文转载自:https://blog.csdn.net/yangwen123/article/details/39502689 音频基础知识声音有哪些重要属性呢? 响度(Loudness)响度就是人类 ...

  5. HTMLPage测试js通过ajax调用

    HTMLPage测试js通过ajax调用接口 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3. ...

  6. Flink 之 Data Source

    Data Sources 是什么呢?就字面意思其实就可以知道:数据来源. Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集.历史的数据集: 也可以用来做流处理,即实时的处理些实时 ...

  7. Flink实时处理并将结果写入ElasticSearch实战

    参考原博客: https://blog.csdn.net/weixin_44516305/article/details/90258883 1 需求分析 使用Flink对实时数据流进行实时处理,并将处 ...

  8. visual studio python快捷键

    打开交互式窗口: alt + i 智能提示: ctrl + j, or alt + ->

  9. pdf 中内容的坐标系

    PDF Page Coordinates (page size, field placement, etc.) AcroForm, Basics, Automation Page coordinate ...

  10. vue-使用keepAlive对上下拉刷新列表数据 和 滚动位置细节进行处理

    [前言] 使用vue处理项目中遇到列表页面时,有一些细节需要注意,这里总结一下,以便优化以后的代码.如下: 1. 使用mint-ui中的LoadMore组件上下拉刷新时,有时无法触发上拉加载更多的方法 ...