Python 3 正确地将整数转换为字节:

Sta*_*tec 3 python byte utf-8

这个问题的答案看起来有两种方法可以bytes在 Python 3 中将整数转换为对象。它们显示

s = str(n).encode()

n = 5    
bytes( [n] )
Run Code Online (Sandbox Code Playgroud)

是一样的。然而,测试显示返回的值是不同的:

print(str(8).encode()) 
#Prints b'8' 
Run Code Online (Sandbox Code Playgroud)

print(bytes([8])) #prints b'\x08'
Run Code Online (Sandbox Code Playgroud)

我知道第一个方法将 更改为十六进制值为 56 的int 8字符串(我相信),但是第二个方法打印什么?utf-8这只是 8 的十六进制值吗?(utf-8退格键的值?)

同样,这两个大小都是一字节吗?看起来第二个有两个字符==两个字节,但我可能错了......

Ant*_*vin 5

b'8'是一个bytes对象,其中包含单个字节,其字符值'8'等于56

b'\x08'是一个bytes对象,其中包含一个值为 的字节8,与 相同0x8