Python之字节

时间: 2023-08-15 admin 互联网

Python之字节

Python之字节

1.utf-8编码格式

  • 我们写python程序的时候都是使用utf-8编码格式来存储编码格式,网页里面同样的也声明utf-8即可, utf-8是中文、英文、日文等全球文字都可以使用的编码格式,通用性很强。

2.了解bytes和bytearray

  • bytes和bytearray是Python3中两个新引入的数据类型;
  • bytes是字节组成,有序的,不可变的序列;
  • bytearray和bytes一样,也是字节组成的,也是有序的,但它是可变的序列;

3.如何定义bytes?

bytes() 
bytes(9) 
bytes('hello', encoding='utf-8') # 返回 b'hello' ,等价于:'hello'.encode()
bytes('中国', encoding='utf-8') # 返回 b'\xe4\xb8\xad\xe5\x9b\xbd' 
  • 字符串转为字节有两种方式:指明编码格式encoding=‘utf-8’,或者是用encode方法;
  • 只有基本的ASCII可以使用字符表示,其他的字符,例如中文,则使用十六进制表示;
  • 例如:‘你好’的字节码为:b’\xe4\xbd\xa0\xe5\xa5\xbd’,每个汉字是3个字节组成;

4.bytes操作

print(b'hello'.startswith(b'h'))  #返回 Trueprint(bytes.fromhex('abcdef'))    #返回 b'\xab\xcd\xef'print(b'\xab\xcd\xef'.hex())      #返回 abcdef
如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群:895 797 751,
里面都是学习python的,
  • bytes的方法与str类似,两者都是不可变类型;
  • str输入输出都是str,bytes输入输出都是bytes;

5.bytearray的定义

b = bytearray()bytearray('hello', encoding='utf-8') 返回 bytearray(b'hello') 

6.bytearray操作

  • 由于bytearray可变,其操作类似于列表,也有增删改查等方法;
  • 使用类似与:b.insert();

7.编码与解码

  • 编码:使用encode方法,返回字节序列bytes;
 str.encode(encoding='utf-8', errors='strict') -> bytes
  • 解码:使用decode方法,返回字符串str;
bytes.decode(encoding="utf-8", errors="strict")-> str
bytearray.decode(encoding="utf-8", errors="strict")-> str 

8.可迭代对象的切片操作

  • 可以通过for循环遍历对象中的元素,就是可迭代对象;
  • 判断一个对象是可迭代对象,首先导入collections模块下的Iterable类型,然后通过isinstance返回boolean值,可迭代返回True,不可迭代返回False;
from collections import Iterable
isinstance('abc', Iterable) 
  • 可迭代对象的切片:类似与数学区间的概念,左边闭区间,右边开区间,且左边一定要小于右边;
print('abcdefg'[1:4]) 返回:bcd
print([1,2,3,4,5][1:3]) 返回 [2, 3] # stepprint('abcdefg'[1:6:2]) 返回 bdf    #步长为2如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群:895 797 751,
里面都是学习python的,