如何使用十六进制值正确定义字典?
How to define correctly dictionary with hexadecimal values?
我有一个 if-elif 语句来为变量 BinValues
分配十六进制值,如下所示:
if a == "v1":
BinValues = b'\xF2'
elif a == "v2":
BinValues = b'\xD3'
elif a == "v3":
BinValues = b'\x71\xC2'
由于十六进制值可能大于 3,为了不使用多个 if 语句,我想使用字典来完成此任务。
我试过如下但出现错误。
BinValues = { "v1": b'\xF2', "v2": b'\xD3', "v3": b'\x71\xC2' }
但是当我打印字典BinValues
的内容时,当我输入的值是b'\x71\xC2'
时,键“v3”的值已经变成了b'q\xc2'
>>> BinValues
{'v1': b'\xf2', 'v2': b'\xd3', 'v3': b'q\xc2'}
这是怎么回事?谢谢
我想应该是一样的。 Python 只是显示为 ascii 字符。我对十六进制值了解不多,但是给你。 https://www.cisco.com/c/en/us/td/docs/ios/12_4/cfg_fund/command/reference/cfnapph.html
我也尝试写入文件并得到相同的结果,除了一个奇怪的问号字符。这是相同的,因为 q
的十六进制值为 71
b'\x71\xc2' == b'q\xc2'
因为
b'\x71' == b'q'
检查ASCII table,可以看到“hex 71”对应于“q”。
我有一个 if-elif 语句来为变量 BinValues
分配十六进制值,如下所示:
if a == "v1":
BinValues = b'\xF2'
elif a == "v2":
BinValues = b'\xD3'
elif a == "v3":
BinValues = b'\x71\xC2'
由于十六进制值可能大于 3,为了不使用多个 if 语句,我想使用字典来完成此任务。
我试过如下但出现错误。
BinValues = { "v1": b'\xF2', "v2": b'\xD3', "v3": b'\x71\xC2' }
但是当我打印字典BinValues
的内容时,当我输入的值是b'\x71\xC2'
b'q\xc2'
>>> BinValues
{'v1': b'\xf2', 'v2': b'\xd3', 'v3': b'q\xc2'}
这是怎么回事?谢谢
我想应该是一样的。 Python 只是显示为 ascii 字符。我对十六进制值了解不多,但是给你。 https://www.cisco.com/c/en/us/td/docs/ios/12_4/cfg_fund/command/reference/cfnapph.html
我也尝试写入文件并得到相同的结果,除了一个奇怪的问号字符。这是相同的,因为 q
的十六进制值为 71
b'\x71\xc2' == b'q\xc2'
因为
b'\x71' == b'q'
检查ASCII table,可以看到“hex 71”对应于“q”。