Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么binascii.a2b_hex()返回字符串?_Python_Python 2.7 - Fatal编程技术网

Python 为什么binascii.a2b_hex()返回字符串?

Python 为什么binascii.a2b_hex()返回字符串?,python,python-2.7,Python,Python 2.7,这是来自的函数的描述 binascii.a2b_十六进制(hexstr) 返回由十六进制字符串hextr表示的二进制数据。此函数与b2a_hex()相反。hexstr必须包含偶数个十六进制数字(可以是大写或小写),否则将引发TypeError 但是,下面的代码示例打印出helloworld import binascii print binascii.a2b_hex('48656c6c6f20576f726c6421') 为什么print将二进制数据解释为字符串?到底发生了什么?因为在Pyth

这是来自的函数的描述

binascii.a2b_十六进制(hexstr)

返回由十六进制字符串hextr表示的二进制数据。此函数与b2a_hex()相反。hexstr必须包含偶数个十六进制数字(可以是大写或小写),否则将引发TypeError

但是,下面的代码示例打印出
helloworld

import binascii
print binascii.a2b_hex('48656c6c6f20576f726c6421')

为什么
print
将二进制数据解释为字符串?到底发生了什么?

因为在Python 2中,所有二进制数据都表示为字符串。
str
类型基本上只是一个字节序列

在Python 3中,基本的
str
类型是一个unicode值(
unicode()
,在Python 2中),Python 2
str
类型被重命名为
bytes
,函数输出字节:

>>> import binascii
>>> binascii.a2b_hex('48656c6c6f20576f726c6421')
b'Hello World!'