提示:本文为《疯狂Python讲义》的自习阅读笔记
字符串
字节串
字符串(str)和字节字符串(bytes)是Python中表示文本数据的两种不同方式。
字符串 str
字符串是Unicode字符的序列,用于表示文本数据;
字符串使用单引号或双引号括起来,例如'Hello'或"World";
字符串是不可变的,即不能修改字符串中的字符;
字符串可以包含任何Unicode字符,包括字母、数字、符号和空格等。
字节字符串 bytes
字节字符串是字节的序列,用于表示二进制数据;
字节字符串使用前缀b加上单引号或双引号括起来,例如b'Hello'或b"World"。
字节字符串是不可变的,即不能修改字节字符串中的字节。
字节字符串中的每个字节都是0到255之间的整数,表示二进制数据的字节值。
两者的区别在于它们表示的数据类型和特性:
字符串用于处理文本数据,支持Unicode字符,并提供了一系列字符串操作和方法,例如拼接、切片、替换等。
字节字符串用于处理二进制数据,例如图像、音频、网络数据等。它们可以包含任意字节值,不仅限于可打印字符。
例如下面的代码:
# 创建一个空的bytes
b1 = bytes()
# 创建一个空格的bytes值
b2 = b' '
# 通过b前缀指定hello是bytes类型的值
b3 = b'hello'
print(b1)
print(type(b1))
print(b2)
print(type(b2))
print(b3)
print(type(b3))
# 调用bytes方法将字符串转成bytes对象
b4 = bytes('我爱Python编程',encoding='utf-8')
print(b4)
# 利用字符串的encode()方法编码成bytes,默认使用utf-8字符集
b5 = "学习Python很有趣".encode('utf-8')
print(b5)
代码段的输出为:
b''
<class 'bytes'>
b' '
<class 'bytes'>
b'hello'
<class 'bytes'>
b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'
b'\xe5\xad\xa6\xe4\xb9\xa0Python\xe5\xbe\x88\xe6\x9c\x89\xe8\xb6\xa3'
学习Python很有趣
字节串中的数据单元是8位字节,每4位字节可以用一个十六进制数来表示,因此每个字节需要两个16进制的数字表示。
转义字符
Python支持的转义字符如表: