看看这个:
fc = '0x'
for i in b[0x15c:0x15f]:
fc += hex(ord(i))[2:]
Run Code Online (Sandbox Code Playgroud)
让我们说这段代码找到了十六进制00 04 0f,而不是那样写,它删除了第一个0,并写道:04f任何帮助?
And*_*ark 22
发生这种情况是因为hex()不包含任何前导零,例如:
>>> hex(15)[2:]
'f'
Run Code Online (Sandbox Code Playgroud)
为确保始终获得两个字符,您可以str.zfill()在必要时使用添加前导零:
>>> hex(15)[2:].zfill(2)
'0f'
Run Code Online (Sandbox Code Playgroud)
以下是您的代码中的样子:
fc = '0x'
for i in b[0x15c:0x15f]:
fc += hex(ord(i))[2:].zfill(2)
Run Code Online (Sandbox Code Playgroud)
Sen*_*yai 15
>>> map("{:02x}".format, (10, 13, 15))
['0a', '0d', '0f']
Run Code Online (Sandbox Code Playgroud)