Python,Printing Hex首先删除0?

the*_*iny 12 python hex

看看这个:

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)

  • 这是比最受欢迎的答案更加pythonic!+1! (3认同)