Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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的中间插入十六进制值_Python_String_Python 2.7_Hex - Fatal编程技术网

在字符串Python的中间插入十六进制值

在字符串Python的中间插入十六进制值,python,string,python-2.7,hex,Python,String,Python 2.7,Hex,我想创建5个十六进制字节长度的字符串,通过套接字发送。我希望发送255个数据包,改变第三个字节的增量。我该怎么做? 类似于以下代码: i=0 while True: a="\x3f\x4f"+hex(i)+"\x0D\x0A" socket.send(a) i=i+1 例如,问题是该代码在第一个循环中引入了0x0(307830)而不是00 谢谢我想你在这里有点困惑 \x3f是单个字符(与?相同的字符) 如果i是,比如说63(十六进制3F)

我想创建5个十六进制字节长度的字符串,通过套接字发送。我希望发送255个数据包,改变第三个字节的增量。我该怎么做? 类似于以下代码:

i=0    
while True:
        a="\x3f\x4f"+hex(i)+"\x0D\x0A"
        socket.send(a)
        i=i+1
例如,问题是该代码在第一个循环中引入了0x0(307830)而不是00


谢谢

我想你在这里有点困惑

\x3f
是单个字符(与
相同的字符)

如果
i
是,比如说63(十六进制3F),您不想在字符串中添加单独的字符
\\
x
3
f
,您想添加单个字符
\x3f
。同样,如果它是0(十六进制00),您不想在字符串中添加单独的字符
\\
x
0
,您要添加单个字符
\x0


这正是函数的用途:

返回一个字符串,其ASCII码为整数i。例如,
chr(97)
返回字符串
'a'


相比之下,该功能将:

[c] 将整数(任意大小)转换为前缀为“0x”的小写十六进制字符串


因此,
hex(97)
返回四个字符的字符串
'0x61'

非常有效!我走错方向了。谢谢。作为补充说明,您可能需要查看
bytearray
。它是一种介于
str
list
小整数之间的混合体。例如,您可以将其构造为
bytearray('\x3f\x4f\x00\x0d\x0a')
bytearray([0x3f,0x4f,0x00,0x0d,0x0a])
,然后执行
a[2]=i
而无需转换,还可以执行
socket.send(a)
而无需转换。