• 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 



     

  • 相关阅读:
    pycharm运行html文件报404错误
    css3 鼠标悬浮动画效果
    子代选择器和后代选择器的区别
    前端入门
    爬虫Scrapy框架
    BeautifulSoup
    爬虫之selenium使用
    爬虫之BeautifulSoup
    urllib模块
    爬虫基础
  • 原文地址:https://www.cnblogs.com/jiangzuofenghua/p/11362912.html
Copyright © 2020-2023  润新知