Bytes与String

本文介绍了Python3中的bytes类型,它是用来表示字节串的数据类型。与字符串不同,bytes以字节为单位进行操作。可以使用b前缀将ASCII字符串转换为bytes,或者通过指定字符集(如UTF-8)将非ASCII字符串编码为bytes。bytes对象不可变,并提供了与字符串类似的方法。此外,通过decode()方法可以将bytes转换回字符串。非ASCII字节串在输出时以十六进制表示。
摘要由CSDN通过智能技术生成

文章是从我的博客super直接拷贝来的,格式可能会有问题,见谅

bytes类型用来表示一个字节串。“字节串”是与字符串相呼应。

bytes是Python3.x新增的类型

比较:

  • 字符串由若干字符组成,以字符为单位进行操作,字节串由若干字节组成,以字节为单位进行操作
  • 字节串和字符串除了操作的的数据单元不同之外他们支持的所有方法都基本一样
  • 字节串与字符串都是不可变序列,不能随意的增加与删除数据

关系:

  • 如果字符串的内容都是ASCII码,就可以直接在字符串前添加b前缀转换成bytes
  • bytes是一个类,调用它的构造方法,也就是bytes(),可以将字符串按照指定的字符集(如encode=’GBK‘)转换成bytes;如果不指定字符集就默认为UTF-8
如果是ASCII编码
#通过构造函数创建空 bytes
b1 = bytes()
#通过空字符串创建空 bytes
b2 = b''

#通过b前缀将字符串转换成 bytes
b3 = b'http://jzcheng.cn'
print("b3: ", b3) # b3: b'http://jzcheng.cn'
print(b3[2])  # 116 (是 t 对应的ASCII码)
print(b3[2:12]) # b'tp://jzche'
如果不是ASCII码
#使用 bytes()创建字节串并指定字符集
b4 = bytes('我喜欢你',encoding='UTF-8')
print(b4)  # b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2\xe4\xbd\xa0'

#把字符串转成bytes  -->encode()
b5 = '我喜欢你'.encode('UTF-8')
print(b5) # b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2\xe4\xbd\xa0'

  • 如果是非ASCII码,输出结果以十六进制输出y原因:非ASCII一般占两个以上的字节,而bytes是按照单个字节来处理数据的
bytes类有一个方法,可以把bytes转换成字符串
# 通过decode()将bytes()转换成字符串
str1 = b5.decode('UTF-8')
print('str1:',str1) # str1: 我喜欢你

更多内容,见super

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值