Python中的字符串可以描述像字符、词、特殊字符这样的数据,或者几乎任何人类可读的形式;因此,它们应该在程序中使用。在Bytes 的情况下**,** 它应该用来描述低级的二进制数据结构。
Python b 字符串
Python b 字符串由字节数据组成,这意味着代表整数的字头在0 到255 之间**。** Python b string和Python string的主要区别 在于其数据类型。普通的字符串有一串Unicode字符,如UTF-16或UTF-32,而Python b字符串有字节数据类型,意味着代表0到255之间的整数的字头(也被称为八位数)。
通过在Python普通字符串前面添加前缀b,我们将其数据类型从 字符串修改 为字节。
让我们来看看这个例子。
app_string = 'Happiest Season'
print(type(app_string))
app_string_b = b'Happiest Season'
print(type(app_string_b))
输出
<class 'str'>
<class 'bytes'>
你可以看到,第一个是正常的字符串,第二个有字节。你要打印的第二个对象不是一个字符串,而是作为字节字面的字节对象。
在Python 2.x中,str和bytes的数据类型是Byte类型的对象,但在Python 3.x中,这一点现在已经改变。
将字节转换成字符串和将字符串转换成字节
你可以将String转换为Byte,这被称为编码, 将Byte转换为String被称为解码。
print('ÑÞ')
print('ÑÞ'.encode('UTF-8'))
print(len('ÑÞ'.encode('UTF-8')))
print(b'\xc3\x91\xc3\x9e'.decode('UTF-8'))
print(len(b'\xc3\x91\xc3\x9e'.decode('UTF-8')))
输出
ÑÞ
b'\xc3\x91\xc3\x9e'
4
ÑÞ
2
在上面的代码中,首先,我们打印了一个德语单词。这个字符串的长度是2,也就是说,它有2个字符。
因为这是一个字符串,所以在下一行中使用了encode()进行编码,输出b'\xc3\x91\xc3\x9e'。
上述编码后的字符串的长度是4个字节,在第三行代码中表示。
如果我们希望将一个字节转换为一个字符串,就必须进行解码,这在第四行中得到体现。
解码后的字符串的长度为2个字符。
这就是Python b字符串的内容。