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

    fan传统的定义函数方式如下

    def f1():
        return 123

    lambda表达式定义函数

    f2 = lambda : 123

    python3的内置函数

    1.abs 绝对值

    i = abs(-11)
    print (i)

    输出结果是11

    abs = absolute 

    2,all 循环参数,如果每个元素都为真,则返回为真

    r = all([True, True])
    print (r)

    在python中 0 () [] ''和 None是False(空值都是假的)

    r = all(["123"," ", [1,2],""])
    print (r)

    返回为False

    3,any 只要有一个为真 就为True

    i = any([None," ","123"])
    print (i)

    返回为True

    4,ascii 自动执行 ascii(对象)去对象的类中,找__reper__,获取返回值

    class Foo:
        def __repr__(self):
            return "hello"
    
    obj = Foo()
    
    r = ascii(obj)
    print (r)

    返回值为hello

    5,bin()二进制 oct()八进制 int()十进制 hex()十六进制

    6,bool判断真假:本质上是把一个对象转换成布尔值

    7,bytes(字节)bytesarray(字节列表)

    补充字节和字符串之间的转换

    bytes("xxxxx",encoding="uft-8")

    8,chr() ord()

    c = chr(65)

    print (c)

    返回值是A

    chr找到对应ascii码中对应的字符(ascii码是一个字符对应一个字节)

    同理 ord(a)

    返回97 通过ord把一个字符转换成数字

    在验证码中不可以生成一个随机

    的字母,但是可以生成一个随机的数随机生成一个随机数,再用chr(xx)生成字母。随机字母就可以生成了。

    eg:生成一个ascii码在65-90的字符的字母

    要导入一个random的模块:

    import random
    
    i = random.randrange(65,91)
    print (i)

     这个括号是(大于等于65,小于91)

    import random
    
    i = random.randrange(65,91)
    c = chr(i)
    print (i)

    这样就能随机生成一个字母了

    如果想生成4个字幕的验证码,循环4此就行了

    import random
    temp = ""
    for i in range(4)
        rad = random.randrange(65,91)
        c = chr(rad)
        temp = temp + c
    print (temp)

    如果想其中含有字母和数字:

    import random
    
    for i in range(6)
        num = random.randrange(0,4)
        if num == 3 or  num ==1:
            rad2 = random.randrange(0,10)
            temp = temp + str(rad2)
        else:
            rad1 = random.randrange(65,91)
            c1 = chr(rad1)
            temp = temp + c1
    print (temp)

    函数callable()表示是否可执行:

    def f1()
        return 123
    
    f1()
    r = callable(f1)

    就是判断一下f1是否可执行。

    compile()

    在python中底层实际上考虑所有的文件都是字符串,编译成机器码后才能让计算机执行。compile("xxxx")相当于让编译器去编译这个字符串,再去让机器执行编译后的机器码。

    complex()

    复数的虚部。

    dict() 字典

    dir()查看类所提供的功能

    li = []
    print(dir(li))

     若想查找更详细的可以用help

    divmod()得到一个元组,(商,余数)

    eval()直接转换字符串的值:

    print("1+3")

    得到的结果还是1+3

    但是如果用eval直接可以把字符串“1+3”计算成4

    exec() 功能和eval一样,但不用输入print。没有返回值

    exec:像python复杂语法程序,用exec来执行

    eval:对于处理像字符串一样的表达式用eval来做。

    返回值:eval是有返回值的,eval()的结果可以赋值给一个变量。eg:re = eval("1+1")

    exec无返回值。执行代码

    compile 编译代码

    filter():

    filter(函数,可迭代对象):函数会迭代里面每一个元素,并且把元素当做参数去执行一下前面的函数,如果函数返回True则符合条件。def f1(x)

    def fi(x):
     

      if x > 22:
        return True
      else:
      
    return False ret = filter(f1,[1,2,33,44])

    for i in ret
    print(i)

    打印输出33 44

    或者

    ret = filter(lambda x : x > 22, [11,22,33,44])
    for i in ret:
        print (i)

    map():

    map(函数,可迭代对象)

    对于[1,2,3,4,5]对每一个元素加100,可以如下操作

    def f1(x):
        return x+100
    ret = map(f1,[1,2,3,4,5])
    for i in ret:
        print (i)

    返回值

    101

    102

    103

    104

    可以改进如下:

    ret = map(lambda x : x+100, [1,2,3,4,5])
    for i in ret:
        print (i)

    globals()显示全局变量

    def f1()
        name = 123
        print (locals())
        print (globals())

    f1()

    同理locals()获取局部变量

    isinstance()判断某个对象是否由某个类创建的

    li = [11,22]
    r = ininstance(li, list)
    print (r)

     issubclass() 判断是不是子类

    iter()创建一个可以被迭代的对象

    obj = iter([11,22,33,44])
    
    r1 = next(obj)
    print(r1)
    r2 = next(obj)
    print (r2)

    pow(2,10)幂运算 2的10次方

    reverse() 对一个列表或者字典的反转

    round()四舍五入

    sum()求和 

    r = sum([11,22,33,44])

    print (r)

    110

    import random 
    random.randrange()
    与
    r = __import__(random)
    r.randrange()
    是一样的

     函数可以做参数:

    def x():
        print("xxx")
    
    
    print(x)

    返回值是一个地址。说明这个函数是在这个内存地址。说明x指向了一个内存。

    x()则是执行这个函数。

    所以函数可以做参数。定义f3

    def f3(arg):
        print(arg)

    可以调用f3(x)

  • 相关阅读:
    PID204特种部队
    概率论,简要数学期望(转载)
    codevs1258 关路灯(☆区间dp)
    codevs3327选择数字(单调队列优化)
    codevs3002石子归并3(四边形不等式优化dp)
    codevs1154能量项链(环形dp,区间dp)
    codevs3304水果姐逛街(线段数)
    codevs3162抄书问题(划分型dp)
    浅谈一类积性函数的前缀和(转载)
    组合数取模(转载)
  • 原文地址:https://www.cnblogs.com/cmpunk/p/7554132.html
Copyright © 2011-2022 走看看