如何查看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
>>>