内置函数 -- bytes -- 字节码与字符串相互转换

简介: 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改。

说明:


   1. 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改。


   2. 当3个参数都不传的时候,返回长度为0的字节数组


>>> b = bytes()
>>> b
b''
>>> len(b)
0


3. 当source参数为字符串时,encoding参数也必须提供,函数将字符串使用str.encode方法转换成字节数组


>>> bytes('中文') #需传入编码格式
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    bytes('中文')
TypeError: string argument without an encoding
>>> bytes('中文','utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'


4. 当source参数为整数时,返回这个整数所指定长度的空字节数组


>>> bytes(2)
b'\x00\x00'
>>> bytes(-2) #整数需大于0,用于做数组长度
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    bytes(-2)
ValueError: negative count


5. 当source参数为实现了buffer接口的object对象时,那么将使用只读方式将字节读取到字节数组后返回


   6. 当source参数是一个可迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组里


>>> bytes([1,2,3])
b'\x01\x02\x03'
>>> bytes([256,2,3])
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    bytes([256,2,3])
ValueError: bytes must be in range(0, 256)


7. 返回数组不可修改


>>> b = bytes(10)
>>> b
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> b[0]
0
>>> b[1] = 1 #不可修改
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    b[1] = 1
TypeError: 'bytes' object does not support item assignment
>>> b = bytearray(10)
>>> b
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
>>> b[1] = 1 #可修改
>>> b
bytearray(b'\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00')


内容总结:


字节码转换为字符串:


1 s = "中国人,美国人"
2 byte_str = bytes(s,encoding="utf-8")
3 print(byte_str)


输出结果:


b'\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba,\xe7\xbe\x8e\xe5\x9b\xbd\xe4\xba\xba'


字符串转换为字节码:


1 tr_str = str(byte_str,encoding="utf-8")
2 print(tr_str)


输出结果:


中国人,美国人
相关文章
|
5月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
118 4
|
1月前
|
Go
Go字节数组与字符串相互转换
Go字节数组与字符串相互转换
33 3
|
3月前
|
存储 Python
语音输入,python数据类型,type()用来查看数据类型,数据类型转换,int(x)转整数,float(x)转换为浮点数,str(x),将对象转为字符串,标识符,标识符不允许使用关键字,关键字参考
语音输入,python数据类型,type()用来查看数据类型,数据类型转换,int(x)转整数,float(x)转换为浮点数,str(x),将对象转为字符串,标识符,标识符不允许使用关键字,关键字参考
|
5月前
|
Python
Python字符串和字节不要混淆str.format()和bytes.format()
【5月更文挑战第6天】Python字符串和字节不要混淆str.format()和bytes.format()
37 1
|
5月前
|
存储 测试技术
luatos 字符串与数组转换,解析hex数组
luatos 字符串与数组转换,解析hex数组
100 1
C++11新特性探索:原始字符串字面值(raw string literal)
原始字符串字面值(raw string literal)是C++11引入的新特性。
136 0
|
5月前
|
Java
java将Date类型转化为固定格式yyyyMMdd字符串
java将Date类型转化为固定格式yyyyMMdd字符串
330 0
|
5月前
|
存储 Go
解析 Go 编程语言数据类型:bool、整数、浮点数和字符串详细介绍
数据类型是编程中的重要概念。数据类型指定了变量值的大小和类型。Go是静态类型的,这意味着一旦变量类型被定义,它只能存储该类型的数据。
82 0
解析 Go 编程语言数据类型:bool、整数、浮点数和字符串详细介绍
|
C语言 Python
ENVI_IDL基础:常用数据类型_创建数组_类型转换_print输出_基本运算_关系运算
ENVI_IDL基础:常用数据类型_创建数组_类型转换_print输出_基本运算_关系运算
550 0
|
Java C语言
【Java SE】数据类型常见错误及字符串拼接与转换
【Java SE】数据类型常见错误及字符串拼接与转换
【Java SE】数据类型常见错误及字符串拼接与转换