zoukankan      html  css  js  c++  java
  • lambda 表达式+python内置函数

    #函数

    def f1(a,b):

          retrun  a+b

    #lambda方式,形参(a,b):返回值(a+b)

    f2=lambda a,b : a+b

    在一些比较简单的过程计算就可以用lambda

    python内置函数

    abc 获取绝对值

    all 循环对象,都为真就返回真否则为假

    >>> li
    [1, 2, 3]
    >>> all(li)
    True

    #0为假

    >>> li=[0,1,2,3]
    >>> all(li)
    False

    bool 真假判断,把一个对象转成bool值

    any 和all差不多只要有个为真就为真

    ascii(对象),对象类中找__repr__,获取返回值。对象如果是列表那么就去list方法中找,对象是字典就去dict中找(python2.7没有这个方法)

    class abc:

          def __repr__:

                   return "nihao"

    f1=abc()

    ret=ascii(f1)

    print ret

    nihao

    #bin  二进制   0b开头

    #oct  八进制    0o开头

    #int 十进制 

    #hex 十六进制 0xe开头

    二进制转换,下面方法也可用到其它进制转换上

    >>> int(0b1111)#0b开头python默认就是二进制,这里就不需要指定base参数,
    15

    >>> int('1111',base=2)#不是0b开头的话这里需要指定一下类型,这里为2进制
    15

    #bytes  字节

    #bytesarray   字节列表

    chr()#将数字转成字符(ascill),ascill占用一个字节8位,0-256

    ord()#将字符转成数字(ascill)

    随机验证码:

    import  random

    yz=''
    for i in range(6):
    if i ==1 or i ==5:
    num=random.randrange(0,10)
    yz=str(num)+yz
    else:
    num=random.randrange(65,91)
    yz=chr(num)+yz
    print(yz)



    结果:
    0RBH0Q

    callable 查看方法是否可以执行,返回布尔值

    >>> def run():print "11"
    >>> a='111'
    >>> callable(a)
    False
    >>> callable(run)
    True

    compile 编译,这个函数可以把字符串翻译成python可执行的代码。如 :"def aa():print1 "这个就是一个字符串,通过这个函数就可以转成函数用了

    divmod  这个也很有用举个例子网站分页,1000条数据,每页展示50条,需要多少页?

    >>> divmod(1000,50)
    (20, 0)     #20页就够用了

    eval #将表达式解释成python代码  例如:eval("1+2"),这样就可以直接计算。eval带返回值

    exec 将字符串翻译成python代码,和eval的区别在于这个没有返回值,"for i in range(10):print i"   eval是没有办法执行这个的

    #循环可以迭代的对象,返回为true就是筛选通过

    filter(函数,可迭代的对象)

    def f1(x):
    if x>22:
    return True
    else:return False
    ret=filter(f1,[11,100,5,60])
    print(ret)


    返回
    [100, 60]

    map(函数,可迭代的对象),将2个数组的值加起来

    ret=map(lambda x,y:x+y,[11,100,5,60],[22,66,15,15])
    print(ret)

    globals #获取所有全局变量

    locals#获取所有局部变量

    hash#将对象进行hash运行算,这样就可以用一个带索引的值可以在以后的查找中快速定位,ye可以将一个很长的串减小空间

    >>> f1="aaaaaaasdaxzczxvcxvzxvc00..asd"
    >>> hash(f1)
    -936964852

    isinstance #判断某个对象是否是某个类创建的

    >>> li=[1,2,3]
    >>> r=isinstance(li,list)
    >>> print r
    True

    issubclass#盘对某个类是不是子类

    next#取迭代器下一个值

    iter#迭代器,生成一个可以迭代的对象,当值取完后再next将报异常,一般和yield生成器配合使用。只有用的时候才会运行

    >>> obj=iter(range(5))
    >>> next(obj)
    0
    >>> next(obj)
    1
    >>> next(obj)
    2

    max#取出最大值

    >>> max([11,22,33])
    33

    min#回去最小值

    >>> min([11,22,33])
    11

    pow#求指数,2的10次方

    >>> pow(2,10)
    1024

    repr#这个和ascii一样返回类的__repr__方法,区别在于ascii遇到中文会进行处理

    reversed#将值反转

    round#四舍五入

    slice#切片,一般不会用到。可以切片的对象直接就可以处理

    sum#求和

    zip#将2个可迭代的对象进行组合,如果2个可迭代的对象个数不一致,那将被删除

    >>> a=[1,2,3,4,5]
    >>> b=['a','b','c','d','e']
    >>> zip(a,b)
    [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]

    __import__ #跟import 作用一样

    a=__import__(getpass)

    a.xxxxx  #有点类似于别名了

    sorted#排序

    列表中也有个sort排序,实际上你用sorted(li)排序的时候也是调用list下的sort方法

    >>> li=[12,1,5,9,2]
    >>> li.sort()
    >>> li
    [1, 2, 5, 9, 12]

    如果排序中包含汉子或者字符,字母转成ascii码,然后根据数字对比,汉子也会转成'xas/sd/'这样编码,这样也可以用ascii来转换了

  • 相关阅读:
    mysql json 嵌套数组查询
    Centos 部署 mysql
    Mysql8.0 导出数据库文档
    MySQL常用Json函数
    java Dateutil 操作类
    雪花算法生成的ID,前端无法使用
    Mysql 一个字段匹配多个字符
    EntityManager 获取 List<T>
    高级软件工程第二次作业:随机生成N个不重复的已解答完毕的数独棋盘
    调研《构建之法》指导下的全国高校优秀实践作品三篇
  • 原文地址:https://www.cnblogs.com/menkeyi/p/6669915.html
Copyright © 2011-2022 走看看