zoukankan      html  css  js  c++  java
  • 内置函数+匿名函数

    内置函数:

      一、作用域相关函数:

          1.locals  (本地作用域中所有名字)

          2.globals(全局作用域中所有名字)

      二、迭代器/生成器相关函数:

          1.range(0,100,2)生成数字,可以加步长。

          2.next  (迭代器)使碰到yield继续执行

          3.iter    (*)让*变成迭代器

      三、其他函数:

          1.dir  ()查看内置属性

          2.help()帮助

          3.callable()是否可以调用(为函数),返回True或False

          4.import   使用模块

          5.open()打开文件

          6.id ()返回值,每次返回不一样。

          7.hash()返回值,用hash算法,每次执行返回不一样。

          8.print()输入内容,pycharm默认显示到页面上,也可以显示到某个文件内。

            print('a',end = '')指定输出的结束符

            print('a‘,4,5,sep = '|')指定分隔符

            print('aaa',file = f)指定输出到某个文件中

          9.input()用户交互

          10.compile()编译

          11.exec()没返回值

          12.eval()有返回值,不建议用,有漏洞。

      四、数据类型相关函数:

        和数字相关:

          1.bool()布尔值

          2.int()整型

          3.float()浮点数

            浮点数 != 小数

            浮点数(有限循环小数,无限循环小数)

            小数:(有限循环小数,无限循环小数,无限不循环小数)

          4.complex()复数

            复数=实数+虚数    复数 5+12j     j=J

            实数:有理数

               无理数

            虚数:虚无缥缈的数

          5.bin()二进制

          6.oct()八进制

          7.hex()十六进制

          8.abs()绝对值

          9.divmod(9,5)除余  div出发 mod取余    (1,4)

          10.round(3.232)取整 3

          11.pow(3,4)幂运算81

          12.sum([2,3])求和5

          13.min()最小数 key = abs 绝对值最小的数

          14.max()最大数 同上

        和数据结构相关:

          序列:

          1.list()列表 强转

          2.tuple()元组  强转 

          3.reversed()序列,由大到小,返回迭代器,可以用list强转

          4.slice() 类似切片,从1,5步长

          5.str()字符串类型

          6.format()格式化输出    print(format('test','>40'))  让test前加40个空格,^让test在中间

          7.bytes()转换成bytes类型,方便传输

          8.bytearray() 查看bytes的字节数,方便更改字符。

          9.memoryview()同上可以输出多个字符

          10.ord()字符转成unicode格式

          11.chr()数字按照unicode格式转成字符

          12.ascii()是否在ascii编码里,在就打印他的ascii,不在输出u

          13.repr()格式化输出,连引号也输出。

          数据集合:

          14.dict()字典类型

          15.set()集合类型

          16.frozenset()不可变集合类型

          相关内置函数:

          17.len()长度

          18.enumerate()枚举  for循环打印,指定两个值,可以指定从1开始。for k,j in enumerate(l,1):print(k,j)

          19.all()判断是否有bool值为False的值,有一个则为False

          20.any()判断是否有bool值为True的值,有一个则为True

          21.zip()拉链,把两个列表或元组结合成一个迭代器。[(1, 'a'), (2, 'b'), (3, 'c')]

          22.filter()执行了之后的结果集合,只管筛选,不会改变原来的值。

          23.map()执行前后元素个数不变,值可能发生改变。

          24.sorted()排序,可以按指定KEY(绝对值)

    匿名函数:

        lambda:

         计算x+y

    s = lambda x,y:x+y
    print(s(1,2))

        取出字典里最大值

    dic={'k1':10,'k2':100,'k3':30}
    s = min(dic,key=lambda s:dic[s])
    print(s)

        现有两元组(('a'),('b')),(('c'),('d')),
        请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

    ret = zip((('a'),('b')),(('c'),('d')))
    res = (map(lambda tup:{tup[0]:tup[1]},ret))
    print(list(res))

        列表推导式和生成器推导式区别

    def multipliers():
        return [lambda x:i*x for i in range(4)]
    print([m(2) for m in multipliers()])
    
    def multipliers():
        return (lambda x:i*x for i in range(4))
    print([m(2) for m in multipliers()])

        第一个结果:[6,6,6,6] 第二个结果:[0,2,4,6]

        列表推导式是for循环执行完了,最后的i固定为3了,生成器推导式让for循环正常运行得到的结果。

  • 相关阅读:
    【数据库】Navicat Premium12远程连接MySQL数据库
    【Linux】一步一步学Linux——Centos7.5安装图解(08)
    【Tools】VMware虚拟机三种网络模式详解和操作
    【Linux】一步一步学Linux——VMware虚拟机三种网络模式详解(07)
    【Linux】一步一步学Linux——VMware Workstation 15 Pro安装图解教程(06)
    微信公众平台开发(25) 数据库操作
    微信公众平台开发(24) 自定义菜单功能开发
    微信公众平台开发(23) 聊天机器人功能开发
    微信公众平台开发(22) 翻译功能开发
    微信公众平台开发(21) 天气预报功能开发
  • 原文地址:https://www.cnblogs.com/tsboy/p/8195150.html
Copyright © 2011-2022 走看看