内置函数以及闭包

今日内容

  1. 匿名函数:一句话函数,比较简单的函数。

    1. 此函数不是没有名字,他有名字,他的名字就是你给其设置的变量。
    2. lambda是定义匿名函数的关键字,相当于函数的def。
    3. lambda后面直接加形参,形参加多少都可以,只要用逗号隔开就行了。
    4. 返回值在冒号之后设置,返回值和正常函数一样,可以是任意数据类型。
    5. 匿名函数不管多复杂,只能写一行,且逻辑结束后直接返回数据。
    def func(a,b):
        return a + b
    #构建匿名函数
    func1 = lambda a,b:a+b
    print(fun(1,2))
    
    

    ​ 接收一个可切片的数据,返回索引为0与2的对应的元素(元祖形成)。

    func2 = lambda a:(a[0],a[2])
    print(func([22,33,44,55]))#(22, 44)
    
    

    写匿名函数:接收两个int参数,将较大的数据返回。

    lambda a,b:a if a>b else b
    
    1. 内置函数

    python 提供了68个内置函数。
    eval 剥去字符串的外衣运算里面的代码,有返回值。
    s1 = '1+3'
    print(s1)
    print(eval(s1))
    s = '{"name":"alex"}'
    print(s,type(s))
    print(eval(s))
    
    exec 与eval几乎一样,代码流。
    msg = '''
    for i in range(10):
    	print(i)
    
    '''
    print(msg)
    exec(msg)
    
    callable 判断一个对象是否可被调用
    print(callable(s1))
    print(callable(func))
    
    int #浮点数取整
    print(int(3.6))
    
    float#浮点数
    print(type(3.6))
    
    complex#转化一个字符串或数为复数
    print(complex(1,2))#(1+2j)
    
    bin:将十进制转换成二进制返回。
    print(bin(100))
    oct:将十进制转化成八进制字符串返回。
    print(oct(10))
    hex:将十进制转化成十六进制字符串返回。
    print(hex(10))
    
    divmod 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元祖
    print(divmod(10,3))
    
    round 保留浮点数的小数位数
    print(round(3.1415926,2))#3.14
    
    pod:求x**y次幂。(三个参数为x**y的结果对z取余)
    print(pow(2,3))
    print(pow(2,3,3))#2**3%3
    
    bytes
    s1 = '太白'
    b = s1.encode('utf-8')
    print(b)
    b = bytes(s1,encoding='utf-8')
    print(b)
    
    ord:输入字符找到该字符编码的位置
    ascii unicode
    print(ord('a'))
    print(ord('中'))#20013 Unicode
    
    chr:输入位置数字找出其对应的字符
    print(chr(97))
    print(chr(20013))#unicode
    
    repr:返回一个对象的string形式(原形毕露)。***
    s1 = 'happe.豪'
    print(repr(s1))#'happe.豪'
    
    all:可迭代对象中,全是True才是True
    l1 = [1,2,'太白',True,[1,2,3],'']
    print(all(l1))
    
    any:可迭代对象中,有一个True就是True
     l1 = ['',(),'太白']
    print(any(l1))
    
    abs()返回数字的绝对值 ***
    prinnt(abs(-6))
    
    sum 对一个可迭代对象进行求和
    l1 = [i for i in range(10)]
    print(sum(l1))
    
    reversed 返回的是一个翻转的迭代器 ***
    l1 = [i for i in range(10)]
    l1.reverse()#列表方法
    print(l1)
    l1 = [i for i in range(10)]
    obj = reversed(l1)
    print(list(obj))
    
    zip 拉链方法 ***
    l1 = [1,2,3,4,5]
    tu1 = ('太白','b哥','德刚')
    s1 = 'abcd'
    obj = zip(l1,tu1,s1)
    print(list(obj))
    
    min max
    l1 = [33,2,3,54,7,-1,-9]
    print(min(l1))
    #以绝对值的方式取最小值
    print(min(l1,key(lambda a:abs(a))))
    凡是可以加key的:它都自动的将可迭代对象中的每个元素按照顺序传入key对应的函数中,已返回值比较大小
    dic = {'a': 3, 'b': 2, 'c': 1}
    print(min(dic,key=lambda a:dic[a]))
    
    sorted 排序函数
    l1 = [22,33,1,2,8,7,6,5]
    l2 = sorted(l1)
    print(l2)
    
    filter 相当列表推导式的筛选模式
    l1 = [2,3,4,5,6,7]
    ret = filter(lambda x:x>3,l1)#返回的是迭代器
    print(list(ret))
    
    reduce 对参数序列中元素进行累计
    
    

原文地址:https://www.cnblogs.com/wang-xing-hao/p/10877959.html