考虑到该bytes类型不一定是一个字符串,一个如何可以看到的实际字节(一和零,或八进制/十六进制的这样的表示)bytes对象?尝试print()或使用pprint()这样的对象会导致打印对象的字符串表示形式(假设使用某种编码,可能是ASCII或UTF-8),并在b其前加上字符以表明数据类型实际上是字节:$ python3Python 3.2.3 (default, Oct 19 2012, 19:53:16) >>> from pprint import pprint>>> s = 'hi'>>> print(str(type(s)))<class 'str'>>>> se = s.encode('utf-8')>>> print(str(type(se)))<class 'bytes'>>>> print(se)b'hi'>>> pprint(se)b'hi'>>>请注意,我专门指的是Python3。谢谢!
3 回答
catspeake
TA贡献1111条经验 获得超0个赞
使用bin,oct或hex和访问使用括号标记字节:
>>> print(hex(se[0]))
0x68
>>> print(hex(se[1]))
0x69
显然一个周期会更好:
for a_byte in se:
print (bin(a_byte))
慕勒3428872
TA贡献1848条经验 获得超6个赞
使用Python字符串格式显示字节的十六进制值:
>>> se = b'hi'
>>> ["{0:0>2X}".format(b) for b in se]
['68', '69']
隔江千里
TA贡献1906条经验 获得超10个赞
>>> s = b'hi'
>>> s
b'hi'
>>> print(s)
b'hi'
>>> for i in s:
print(i)
104
105
>>> y = 'hi'
>>> for i in y:
print(i)
h
i
>>>
添加回答
举报
0/150
提交
取消