bytes和str

导读:字符串前面加b,表示这是一个bytes流,例如,b'hello'

内容:

一、对比

bytes是字节流,str是字符串,对应的分别是 class bytes 和 class str,对比如下:
1.str由若干个字符组成,以字符为单位进行操作;bytes由若干个字节组成,以字节为单位进行操作。
2.str和bytes除了操作的数据单元不同之外,它们支持的所有方法都基本相同。
3.str和bytes都是不可变序列,不能随意增加和删除数据。

 

二、相互转换
方法一、调用str、bytes类的构造方法
bytes(string, encoding[, errors])   可以将str转化为bytes类型
str(bytes[, encoding[, errors]])   可以将bytes转化为str类型

 

 

方法二、调用str.encode()方法,调用bytes.decode()方法
str.encode(encoding='utf-8', errors='strict')     也可以将str转化为bytes类型,默认utf-8编码
bytes.decode(encoding='utf-8', errors='strict')   也可以将bytes转化为str类型,默认utf-8编码

 

 

方法三、如果str中都是ASCII字符,直接在前面加b,就可以转化为bytes类型
例如 'Angle' --> b'Angle'

 

 

三、b'Angle'和'Angle'的区别

b'Angle'里面存的是字符对应的ASCII码,你看到的是b'Angle',实际上里面保存的是010101....

中文是不能用ASCII码表示的,所以b'中'报错

 

 

说白了,bytes 只是简单地记录内存中的原始数据,至于如何使用这些数据,bytes 并不在意,你想怎么使用就怎么使用,bytes 并不约束你的行为

因此,bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程;bytes 也可以用来存储图片、音频、视频等二进制格式的文件

 

 

参考文献:

http://c.biancheng.net/view/2175.html

https://www.cnblogs.com/chownjy/p/6625299.html

posted @ 2021-09-25 09:56  帅帅的飞猪  阅读(870)  评论(0编辑  收藏  举报