【Python基础知识库】Python中字符串和字节串的区别

    技术2026-01-17  7

    字符串和字节串的区别

    字符串有若干个字符组成,以字符为单位进行操作;字节串由若干个字节组成,以字节为单位进行操作。

    字符串和直接传出了操作的数据单元不同之外,它们支持的所有方法基本相同。

    字符串和字节串都是不可变序列,不能随意增加和删除数据。

    bytes只负责以字节序列的形式(二进制的形式)来存储数据,至于这些数据到底表示什么内容(字符串、数字、图片、音频等),完全由程序的解析方式决定。

    bytes只是简单记录内存中的原始数据,不在意这些数据的使用。

    字符串和字节串可以通过不同字符集进行相互转换。

    bytes类型的数据非常适合在互联网上传输,可用于网络通信编程。

    bytes也可以用于存储图片、音频、视频等二进制格式的文件。

    字符串转换成bytes对象:

    字符串内容都是ASCII字符,直接在字符串前面添加b前缀就可以将字符串转换为bytes # 字符串的内容是英文字母,都是ASCII字符 s= 'abcdefg' b1 = b'abcdefg' print(b1) print(b1[0]) # 当取单个字符时,返回的字符所对应的ASCII编码 print(b1[:3]) # 当取字符序列的时候,返回的是对应的字符片段 # 结果 ''' b'abcdefg' 97 b'abc' ''' bytes是一个类,调用构造方法bytes(),可以将字符串按照指定的字符集转换为bytes,若未指定字符集,默认采用utf-8 # 调用构造方法bytes(),把字符串转换为bytes s = "我喜欢python,今年25岁" b2 = bytes(s, encoding="utf-8") print(b2) # 结果 ''' b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2python\xef\xbc\x8c\xe4\xbb\x8a\xe5\xb9\xb425\xe5\xb2\x81' ''' 通过encode()方法见字符串按照指定的字符集转换成对应的字节串,若未指定字符集,默认采用utf-8 # 通过encode()的方法将字符串转换为bytes s = "我喜欢python,今年25岁" b3 = s.encode("utf-8") # 如果未指定字符集,默认为utf-8,括号里可不填 print(b3) # 结果 ''' b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2python\xef\xbc\x8c\xe4\xbb\x8a\xe5\xb9\xb425\xe5\xb2\x81' ''' 通过调用bytes类中的decode()方法,可以将btyes对象按照指定的字符集转换为字符串 # 通过decode()方法,将bytes转换成字符串 b4 = b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2python\xef\xbc\x8c\xe4\xbb\x8a\xe5\xb9\xb425\xe5\xb2\x81' s = b4.decode("utf-8") # 如果未指定字符集,默认为utf-8,括号里可不填 print(s) # 结果 ''' 我喜欢python,今年25岁 '''
    Processed: 0.040, SQL: 9