Python 如何打印十六进制值?

Python 如何打印十六进制值?,python,Python,以下代码: xbee.remote_at(dest_addr_long='\x00\x13\xA2\x00\x40\x0A\x21\x1C', command=mycommand, frame_id='\x01') response = xbee.wait_read_frame() print(response) 返回此响应: {'status': '\x00', 'source_addr': '\x8b>', 'source_addr_long': '\x00\x13\xa2\x00@

以下代码:

xbee.remote_at(dest_addr_long='\x00\x13\xA2\x00\x40\x0A\x21\x1C', command=mycommand, frame_id='\x01')
response = xbee.wait_read_frame()
print(response)
返回此响应:

{'status': '\x00', 'source_addr': '\x8b>', 'source_addr_long': '\x00\x13\xa2\x00@\n!\x1c', 'frame_id': '\x01', 'command': 'D0', 'parameter': '\x04', 'id': 'remote_at_response'}
从响应中,我可以很容易地获得myid,我只需键入:

 myid = response['id']
print myid
现在我想获取参数并将其存储为myparameter,但它是十六进制的
myparameter=response['parameter']
不起作用

如何获取十六进制参数
\x04
并将其打印出来?

您可以使用

print( repr(response['parameter'])[1:-1] )

我想你把自己和你的问题搞混了。实际的问题是“如何从字节字符串中提取一个字节的数值”,对于这个问题的答案是
ord()
。请注意,
ord()
只接受一个字节,即长度为1的字节字符串,我不确定这是否可以保证。此外,在Python2中,字符串默认为字节字符串,而在Python3中,它需要显式的“b”前缀


现在,回到hex值,重点是不涉及任何hex,除非将响应写入控制台(在控制台中使用
repr()
函数)或在代码中写入响应!另一个重要的事情是,没有“十六进制值”这样的东西,有一个数值,并且有一个使用十六进制格式表示的值。这就是为什么
0x11==0b10001==17
,因为这些是值比较,不同的基数只是写入相同值的不同方式。

函数做了您想要的吗?预期的输出是什么?预期的输出是\x04甚至04如果我理解正确,您想打印
响应['parameter']
,但是你想看
\x04
(字面意思)?如果是这样,您可以使用
打印报告(响应['parameter'])[1:-1]
谢谢@Rufflewind。奥德工作得很好。myhexparameter=响应['parameter']打印ord(myhexparameter)打印4。太好了。谢谢