如何查看Python3的字节<;类别';字节'&燃气轮机;对象

如何查看Python3的字节<;类别';字节'&燃气轮机;对象,python,python-3.x,type-conversion,Python,Python 3.x,Type Conversion,考虑到这一点,我们如何才能看到字节对象的实际字节(1和0,或这种字节的八进制/十六进制表示)?尝试print()或pprint()这样的对象会导致打印对象的字符串表示形式(假设采用某种编码,可能是ASCII或UTF-8),前面加上b字符,以指示数据类型实际上是字节: $ python3 Python 3.2.3 (default, Oct 19 2012, 19:53:16) >>> from pprint import pprint >>> s = 'hi

考虑到这一点,我们如何才能看到
字节
对象的实际字节(1和0,或这种字节的八进制/十六进制表示)?尝试
print()
pprint()
这样的对象会导致打印对象的字符串表示形式(假设采用某种编码,可能是ASCII或UTF-8),前面加上
b
字符,以指示数据类型实际上是字节:

$ python3
Python 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
Python 3.2.3(默认值,2012年10月19日,19:53:16)
>>>从pprint导入pprint
>>>s=‘嗨’
>>>打印(str(类型)))
>>>se=s.encode('utf-8')
>>>打印(str(类型(se)))
>>>印刷品(se)
嗨
>>>警察公共关系科(东南)
嗨
>>>

请注意,我特别指的是Python 3。谢谢

使用
bin
oct
hex
并使用括号符号访问字节:

>>> print(hex(se[0]))
0x68
>>> print(hex(se[1]))
0x69
显然,循环会更好:

for a_byte in se:
    print (bin(a_byte))
用于显示字节的十六进制值:

>>> se = b'hi'
>>> ["{0:0>2X}".format(b) for b in se]
['68', '69']

这个答案并没有增添什么新的东西。Dek Dekku的公认答案已经展示了如何使用
for
循环对字节进行迭代。虽然这段代码可以回答这个问题,但提供关于如何和/或为什么解决问题的额外上下文将提高答案的长期价值。
>>> 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
>>>