zoukankan      html  css  js  c++  java
  • python内置函数bytes、bytearray

    一、bytes、bytearry

    • python3版本引入两个新类型
    • bytes: 不可变字节序列  
    • bytearry:字节数组,可变

    二、字符串与bytes

    •  字符串是字符组成的有序序列,字符可以使用编码(ASCII)来理解
    •  bytes是字节组成的有序不可变序列
    •  bytearry是字节组成的有序可变序列

    三、编码与解码

    •  编码:字符串按照不同的字符集编码encode返回字节序列bytes
    •     encode(encoding='utf-8',error='strict')
    •  
    •  解码:字节序列按照不同的字符集解码decode返回字符串
    • 举例:
      • 编码字符串‘abc’
         >>> bytes('abc','UTF8')
         b'abc'
         编码字符串‘abc’
         >>> a = 'abc'.encode()
         >>> a
         b'abc'
         >>> type(a)
         <class 'bytes'>
         
         解码字符串'abc'
         >>> a.decode()
         'abc'
         >>> a
         b'abc'
         
         影子拷贝
         >>> b = bytes(a)
         >>> b
         b'abc'
         
         实际比较a和b的值
         >>> id(a) == id(b)
         True
         
         实际比较内存id
         >>> id(a) is id(b)
         False
         >>> 

    四、bytes定义

    •  bytes() 空bytes
    •  bytes(string,encoding)  返回bytes类型,等价于string.encode()
    •  bytes(bytes_or_buffer)  从一个字节序列或者buffer复制出一个新的不可变的bytes对象
    •  使用b前缀定义,只允许基本ASCII使用字符形式,如b'abc'

    五、bytes操作

    •  和字符串str类型操作类似,都是不可变类型,所以方法很多都是一样,只不过bytes的方法,输入时bytes,输出是bytes
    • a.encode().hex() 返回16进制的字符串
    •  索引访问:a[2] 返回该字节对应的ACSII对应的数,int类型
    • bytearray和bytes操作一样
    • 举例:
    • >>> a = b'abcdef'
      >>> a.replace(b'f', b'k')
      b'abcdek'
      >>> a.find(b'b')
      1
      >>>

      切割

      >>> a = b'abcdef'
      >>> a.split(b'b')
      [b'a', b'cdef']
      

      >>> 'abc'.encode().hex()  十六进制
      '616263'

      索引访问
      >>> a[2]  对应的编码数字
      99 



     

  • 相关阅读:
    Spring快速开启计划任务
    一张图告诉你什么是系统架构师
    一张图搞清楚Java异常机制
    Spring Cloud配置中心内容加密
    Spring Cloud配置中心高可用搭建
    Spring Cloud动态刷新配置信息
    Spring Boot实现热部署
    Spring Boot集成Mybatis双数据源
    (1)python tkinter-窗体
    (1)html基础
  • 原文地址:https://www.cnblogs.com/jiangzuofenghua/p/11362912.html
Copyright © 2011-2022 走看看