• 内置函数与匿名函数


    内置函数
     
    1.取绝对值的内置函数: abs
      print(bas(-9)) #-9的绝对值会被打印出来
    2. 处理可迭代对象的函数(一):all
      name = ("Tom","Jack","Lily")
      print(all(name)) #因name这个变量定义的可迭代对象是一个正确的列表
      所以实print执行会返回Truse,只有可迭代对象全为真,
      返回结果才为True.
    3.处理可迭代对象函数(二):any
      name = ("Tom","Jack","Lily",[]) #这本身并不是一个列表
      print(any(name)) #返回结果会是True,因为any函数对对象处理是或的关系
      只有列表中的元素全为假,返回值才为假
    4.将十进制转换成二进制的函数 bin()
      num = 10
      print(bin(num) #0b1010 0b意为转换的是二进制形式
    5.将十进制转换成八进制的函数 oct()
      print(oct(10)) #这是一种简写形式,直接转换,o012
     
    6.将十进制转换成十六进制的函数:hex()
      print(hex(19)) #19转换成十六进制形式打印
    7.对结果进行判断的函数 bool()
      print(bool(2>3)) #返回False,可以在函数体中加入bool
    8.将字符类型转换成十六进制位的字节码后并打印
      print(bytes("jiahb",encoding="utf-8")) #在转换的最后加上编码类型,gbk utf-8
    9.将十六进进制字节码转换成字符串(或汉字),反编译
      print(str(bytes("jiahb",encoding="utf-8"))) #最后打印出的依然是alex,反编译了。
    10.判断函数是否可以被调用 callable
      def f1():
      pass
      f2=(121)
      print(callable(f1)) #判断一个是函数是否可以被调用,其实就是判断一个函数是否是完整的
    11.将数字转换成ASSIC码表中对应的值 chr
      print(chr(1)) #还有ASSIC码表中可能对应了一个空的值,即没有返回值。
    12.将字符串编译成python代码 complile()
      name = "jiab"
      b = compile(name,'','','exec')
      exec(b) #使用compile模块下的exec方法对name这个变量定义的字符串进 行编译,编译结果是没有返回值的
      print(eval("8*8")) #打印8*8的计算结果,但是有返回值
      print(exec("8*8")) #没有返回值,只会打印下None
    13.快速查看模块提供了哪些功能 dir()
      a. print(dir(compile)) #查看compile这个内置函数的基本功能
      也可以查看导入模块的基本功能信息
      b.import json
      print(dir(json)) #查看json模块的基本功能
    14.求两个数的商和余数 divmod()
      num = divmod(12,8)
      print(divmod)
      print(num[0]) #取商
      print(num[1]) #取余数
    15.判断对象是否是某个类的实例 isinstance
      name = "jiahb"
      print(isinstance(s,str)) #创建的对象"jiahb"是否是str这个类的实例,是则True,不是则False.
    16.查看创建变量的内存地址 id()
      name = "jiahb"
      print(id(name)) #返回一串数字,即内存的地址
    17.将创建的对象转换成浮点型 float()
      name = "12"
      print(float(name)) #转换成12.0
    18. 将对象转换成hash值 hash()
      name = "jiahb"
      print(hash(name)) #求定义的变量的一个哈希值,并将其当作key进行存储(这点儿没太明白)
    19.创建一个迭代器 iter() 后续再加
    20.查看python创建变量的字符串的长度,也可以按字节查看 len()
      python3默认是按字符查看,pyhon2.7只能按字节查看
      name = "jiahb"
      print(len(name))
     python3.0按字节查看
      b = bytes(name,encoding='utf-8')
      print(len(b)) #将转换成的字节数打印出来
     
    21.对多个数字进行求和运算 sum()
      print(sum(11,22,33,44)) #多个数字累加求和
    22.求若干数字中最大最小值 max() min()
      print(max(11,22,33,44))
      print(min(11,22,33,44))
    23.求某个数的指数 pow()
     print(pow(2,10)) #2**10会打印
    24.面向对象中会用到的内置函数 repr()
    25.求序列的反转 reverse()
      注:reverse这个反转函数只能处理列表,不能处理元组
      num = [11,22,33,44]
      num.reverse()
      print(num)
    26.把一个字母转换成数字 ord()
     print(ord("a")
    27.求四舍五入的数 round()
     print(round(float(1.9)) #返回2
    28.slice 切片功能 python3.0新加功能
    29.循环是取位置对应符号enumerate()
    dic={'name':'egon','age':18}
    for i in enumerate(dic):
      print(i)
    结果  :   (0,'name')(1,'age')
     
    salaries={
        'egon':3000,
        'alex':100000000,
        'wupeiqi':10000,
        'yuanhao':2000
    }
     def func(x):
         return salaries[x]
     print(max(salaries,key=lambda x:salaries[x]))
     
     min
     zip
    映射 map()
      map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回
     map:映射
     l=[1,2,3,4]
     m=map(lambda x:x**2,l)
     print(list(m))
     
     names=['alex','wupeiqi','yuanhao']
     print(list(map(lambda item:item+'_SB',names)))
     
     
    reduce:合并
    from functools import reduce
     
     res=0
     for i in range(100):
         res+=1
    print(reduce(lambda x,y:x+y,range(100),100))
     
    filter:过滤
     
    names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon']
    print(list(filter(lambda name:name.endswith('_sb'),names)))
     
    sorted
    l=[1,2,4,9,-1]
    print(sorted(l)) #从小到大
    print(sorted(l,reverse=True)) #从大到小
     
    匿名函数:
     
    关键字lambda表示匿名函数,冒号前面的x表示函数参数。
     
    匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
     
    用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:
    范例:
     l=[1,2,3,4]
     m=map(lambda x:x**2,l)
     print(list(m))
     
     names=['alex','wupeiqi','yuanhao']
     print(list(map(lambda item:item+'_SB',names)))
     
    范例:活用列表解析
    with open('goods',encoding='utf-8') as f:
        # for line in f:
        #     l=line.split()
        #     goods_info.append({'name':l[0],'price':l[1],'count':l[2]})
        goods_info=[{'name':line.split()[0],'price':float(line.split()[1]),'count':int(line.split()[2])} for line in f
                    if float(line.split()[1]) > 3000]
    print(goods_info)
  • 相关阅读:
    Ui——创建视图的方法及过程
    iOS设计模式----原型模式
    浅谈OC中排序的方法
    Solid Dominoes Tilings (轮廓线dp打表 + 容器)
    Shell Necklace (dp递推改cdq分治 + fft)
    Rigid Frameworks (画图二分图规律 + DP + 数学组合容斥)
    PowMod (欧拉推式子 + 指数循环节)
    Necklace (全排列 + 匈牙利)
    GCD (RMQ + 二分)
    Game (思维)
  • 原文地址:https://www.cnblogs.com/lizhaoyu/p/7055991.html
Copyright © 2020-2023  润新知