内置函数

基础数据类型相关

数字类型:
  • int
  • float
  • bool
  • complex 复数

        print(complex(2))                #(2+0j)
        print(complex(2,8))             #(2+8j)
        print(complex(2+8j))           #(2+8j)
        print(complex(2,8j))             #(-6+0j)

进制转换:

  • bin 二进制
  • oct 八进制
  • hex 十六进制

数学运算:

   •  abs     # 绝对值
   •  divmod  # 商余      print(divmod(10,3))      #(3)
   •  round   # 小数保留且四舍五入  print(round(1.16,2))  #1.2
   •  pow     #
                pow(x,y)   # x*y
                pow(x,y,z) # x**y%z      t = pow(3,2,4)   '\n'  print(t)    # 1  (3**2==9   9%4 ==1)
   •  sum     # 求和
                print(sum(range(7)))     #21
                print(sum(range(7),-6))  #15  (21-6)    
   •  min     # 最小值
   •  max     # 最大值
                print(max(-9,1,5))          #最大值 5
                print(max(-9,1,5,key=abs))      #绝对值最大值   -9 (key= 函数名)
                print(max([-9,1000,100],[-8,1,5]))    #最大值 【-8,1,5】(列表等比值先看第一项) 

作用域相关:

  • globals 全局变量(字典形式打印) {所有的全局变量:值, 所有函数名:内存地址}
  • locals 局部变量(字典形式打印) {所有 局部变量:值, 所有 同一个函数内的函数名:内存地址}

迭代器、生成器相关:

  • range
  • iter
  • next

其他:

  • eval 和 input 组合用有安全隐患,如果要用,把代码写死。。。
  • exec
  • compile 编译 compile(source, filename, mode, flags, dont_inherit) 将一个字符串编译为字节代码

输入输出:

  • input
  • print

    print(self,*args,sep=' ‘,end = ’\n',file = None)               
    print(value,........,sep = ' ‘,end = ’\n',file = sys.stdout,flush = False)    
        file:  默认是输出到屏幕,如果设置为文件句柄,输出到文件
        sep:   打印多个值之间的分隔符,默认为空格
        end:   每一次打印的结尾,默认为换行符
        flush: 立即把内容输出到流文件,不作缓存        
        
        f = open('name','w',encoding='utf-8')
        print(123,456,sep = ',',file=f,flush = True)    #直接写入文件中
   
        import time
        for i in range(0,101,2):
           n = i // 2
           time.sleep(0.2)
           # \r 默认表示将输出的内容返回到第一个指针,这样的话,后面的内容会覆盖前面的内容
           print('\r{}%%:{}'.at(i,'*'*n),'\n' if i == 100 else '\r{}%%:{}'.at(i,'*'*n),end='')
           
           
                            输出颜色:
                                    格式:print("\033[前景色m    str     \033[背景色m")           \033[色号m

                                                print("\033[31m    hello   \033[40m")

                            前景色         背景色         颜色
                            ------------------------------------------
                            30                  40              黑色
                            31                  41              红色
                            32                  42              绿色
                            33                  43              黄色
                            34                  44              蓝色
                            35                  45              紫红色
                            36                  46              青蓝色
                            37                  47              白色

                            显示方式            意义(前景色)
                            ----------------------------------------------
                            0                           终端默认设置
                            1                           高亮显示
                            4                           使用下划线
                            5                           闪烁
                            7                           反白显示
                            8                           不可见

内存相关:

  • hash 判断一个数据类型是否可哈希 不可哈希会报错 (字典键的内存寻址)
  -----在一个程序执行的过程中,对同一个值hash的结果总是不变
  • id

文件操作相关:

  • open

模块相关:

  • import 插入模块相关

帮助:

  • help 查看所有的方法及其使用方法

    help() 所有 ‘q’退出

    help(o)查看o对象的使用方法

调用相关:

  ▪ callable      # 返回True or False

查看内置属性:

  • dir 只查看对象包含所有属性、方法名

数据结构相关

序列相关:
  • list
  • tuple

内置函数相关:

  • reversed    倒序:反转一个序列对象,使其元素从后往前构建一个新的迭代器

    reversed  返回迭代器   不改变原列表,生成一个新的迭代器
    reverse   返回None   改变原列表   
        
    l = [1, 2, 3]
    res = reversed(l)           #生成一个新的res迭代器
    print(list(res))
    ---------
    l.reverse()         #把原列表改变
    print(l)

  • slice 切片

   l = [1,2,3,4,5,6,7,8,9]
   s = slice(1,4,2)   切片的内置函数
   print(l[s])
   #[2, 4]
   l[1,4,2]  以前的切片可以理解成语法糖

字符串相关:

  • str

  • bytes  字节     网络编程的时候:能在网络上传递的必须是字节

    a = bytes('',encoding='gbk')      中间网络传输的时候用的是  t
    print(a)                          b'\xd6\xdc'
    b = a.decode(encoding='utf-8')   另一台计算机收到后 解码, 

  • bytearray   字符串长的时候用(修改)

  对比较长的字符串做修改的时候,指定某一处进行修改,不会改变这个bytearray的内存地址
  bytearray  创建一个,就不用创建,直接多次修改
        s = 'abcdefg'
        a = bytearray(s.encode('utf-8'))       # 把Unicode的str类型编码成utf-8的byte类型
        a[:2] = bytearray('xy'.encode('utf-8'))
        a[-2:] = bytearray('mn'.encode('utf-8'))      #可以多次操作,省内存(str模式修改一次,创建一个内存)
        print(s)
        print(a.decode('utf-8'))       # 把a由utf-8的byte类型解码成Unicode的str类型

  • memoryview 

  a = memoryview(bytes('周abcdefg',encoding='utf-8'))
    print(len(a))  #10     只用bytes和bytearray拿不到 print(bytes('a')) 拿到b'a'   print(bytearray('a')) 拿到bytearray(b'a')
    print(a[0])   #97 类似C语言指针功能,memoryview(obj) obj必须支持buffer protocol,
                    # python中原生的支持buffer protocol的有bytes和bytearray
    print(a[:4])   #<memory at 0x00000000021BC108>
    print(bytes(a[:3])) #b'\xe5\x91\xa8'  是3个字节 utf-8 bytes类型, 需要解码才能得到汉字
    t = bytes(a[:3])
    print(t.decode('utf-8'))  #解码,拿到‘周’

 

  • ord ord 和 chr 为互逆函数 把长度为 1 的字符串转换成 数字range(256) uniord

  • chr chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符

    print(ord('a'))   # 97
    print(chr(97))    # a
    可以比较字母的大小(例子:乒乓球选对阵名单)

  • ascii码

此函数跟repr()函数一样,返回一个可打印的对象字符串方式表示,当遇到非ASCII码是,就会输入\x,\u或\U等字符
来表示,
跟python2里的repr()是等效的函数

    print(ascii('a'))  # 'a'  a字符串
    print(ascii(10))           #数字10
    print(ascii('akfjdk'))   # 'akfjdk'
    print(ascii(90000000000000000000000000000))  #90000000000000000000000000000
    print(ascii('b\31'))           #'b\x19'
    print(ascii('0x\100'))  # '0x@0'

  • repr

  基本上和ascii码函数一样

            print(repr('a'))  # 'a'  a字符串
            print(repr(10))           #数字10
            print(repr('akfjdk'))   # 'akfjdk'
            print(repr(90000000000000000000000000000))  #90000000000000000000000000000
            print(repr('b\31'))           #'b\x19'
            print(repr('0x\100'))  # '0x@'
            
    %r 用repr()处理对象
    字符串拼接
    word = "I'm a teacher."
    %r
    print('I said: %r'%word)    ##I said: "I'm a teacher."
    %s
    print('I said: %s'%word)    ##I said: I'm a teacher.

数据集合相关:

  • dict  字典
  • set    集合
  • frozenset

内置函数相关:

  • len

  • enumerate 枚举

    l = ['a','b','c']
    for i in enumerate(l,1):
        print(i)
    # (1, 'a')       得到的是元组,
    # (2, 'b')
    # (3, 'c')
    for i,j in enumerate(l,1):
        print(i,j)
    # 1 a           分别从元组取值
    # 2 b
    # 3 c

  • all

    只要有0,空,None 就 False
    print(all([1,2,0]))                 #False
    print(all([1,2,None]))          #False
    print(all([1,2,'']))                #False
    print(all([1,2,3]))                 #True

  • any

    只要有  非空 就  True
    print(any([None,'',0]))         #False
    print(any([1,'',None,0]))       #True

  • zip 拉链函数 以短的为基准

    就像拉链一样,把每个对应的放到一个元组里面
    a = zip(['a','b','c','d'],('xy','z'),range(100))
    print(a)                         <zip object at 0x00000000024BAA88>
    print(type(a))                 <class 'zip'>
    print(list(a))

    #[('a', 'xy', 0), ('b', 'z', 1)]        第二个只有 2 个元素

  • filter 过滤函数

    filter()函数不改变可迭代对象原来的元素,只是元素个数<=原数量
    filter(func,iter)

    def func(n):
        if n > 3:
            return True
    t = filter(func,[1,2,3,4,5])
    print(type(t))           #<class 'filter'>
    print(list(t))           #[4,5]

    def func(n):
        if n < 3:
            return False        # Flase  返回的都是空    只有的True的才会放到新的迭代器里面
    t = filter(func,[1,2,3,4,5])
    print(list(t))      #[]

    def func(n):
        return n > 3            #可以直接返回 条件
    t = filter(func,[1,2,3,4,5])
    print(list(t))           #[4,5]


    def func(n):
        return n and n.strip()          # n 把None , 0 过滤掉,  n.strip()把 ‘’ 过滤掉
    t = filter(func,['a',None,'',0,'0','b'])        # ‘0’ 不能过滤
    print(list(t))              ['a', '0', 'b']

  • map(func ,iter1,iter2) 根据提供的函数对指定序列做映射

    新内容个数 = 原内容个数
    map() 和 filter() 区别:map不改变元素个数     可迭代对象的 元素 可能发生变化

    def f(x):
        return x**2
    ret = map(f,[1,2,3,4,5,6,7,8])      # map(函数,可迭代obj)          
    print(list(ret))                    # 返回:迭代器 
    #[1, 4, 9, 16, 25, 36, 49, 64]

  • sorted(iterable,key,reverse) 

    生成一个新列表,不改变原列表
    sort 修改原列表顺序
    print(sorted([-5,3,-2,1,-4]))     #[-5, -4, -2, 1, 3]  #升序
    print(sorted([-5,3,-2,1,-4],reverse=True))     #[3, 1, -2, -4, -5] #倒序
    print(sorted([-5,3,-2,1,-4],key=abs,reverse=True))      #绝对值倒序        ( 凡是有key=None 的,都是默认 函数)
    #[-5, -4, 3, -2, 1]                 
    l = ['ajkhs',(1,2),'a',[1,2,3,4]]
    print(sorted(l,key=len,reverse=True))           # 各个元素之间必须有对比性(就是必须能比较大小,例如str和int不能比较,
    #['ajkhs', [1, 2, 3, 4], (1, 2), 'a']                    报错)

 

posted @ 2017-10-18 18:03  静静别跑  阅读(166)  评论(0编辑  收藏  举报