python3.x的编码

本文详细介绍了Python3中str和bytes两种数据类型的使用方法及其区别,强调了Python3如何清晰地划分文本和二进制数据,并提供了具体的代码示例来说明在Python3中处理不同数据类型时应注意的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3.x也有两种数据类型,str和bytes;str类型存unicode数据,bytes类型存bytes数据,
  python3.x将utf-8或者gbk等编码的字节数据转化为python3.x的str类型,utf-8编码的bytes<–>str
  python2.x将utf-8或者gbk等编码的字节数据转化为python2.x的unicode类型,utf-8编码的str<–>unicode
  python3.x的编码思想就是它清晰的将文本和二进制区分开了,不会对bytes字节进行自动编码。文本总是unicode,由str类型表示,二进制数据则由bytes类型表示,Python 3不会以任意隐式的方式混用str和bytes,将两者明确地区分开。基于此,Python3中不能拼接字符串和字节包,也不可以在字节包里搜索字符串(反之亦然),也不能向使用字符串参数的函数中传入字节包参数(反之亦然)。

python3 执行代码的过程
1.解释器找到代码文件,把代码字符串按文件头定义的编码加载到内存,转成unicode
2.把代码字符串按照语法规则进行解释,
3.所有的变量字符都会以unicode编码声明

######在python2.x#######
print(b'hello'+'world')
会输出
helloworld

######在python3.x#######
print(b'hello'+'world')
会输出
TypeError: can't concat str to bytes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值