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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?