Python-使用format / f字符串以0填充和中心输出十六进制

时间:2018-10-16 20:13:20

标签: python

我正在尝试输出填充为0的十六进制整数并将其居中。

data = 10

我可以做一个或另一个:

'{:#04x}'.format(data) # my attempt at PADDING
'{:^#14x}'.format(data) # Centers Correctly

我不知道如何将两者结合 我想要的输出是:

0x0a  # centered in a width of 14

2 个答案:

答案 0 :(得分:2)

使用Python <3.6:

>>> '{:^14s}'.format('{:#04x}'.format(data))
'     0x0a     '

带有f string的Python 3.6 +:

>>> '{:^14s}'.format(f'0x{data:02x}')
'     0x0a     '

(可能abusively)可以缩短为:

>>> f'{f"0x{data:02x}":^14}'
'     0x0a     '

也许更直接一点:

>>> f'{format(data, "#04x"):^14}'
'     0x0a     '

答案 1 :(得分:1)

这有点难看,但效果很好:

'{:^14}'.format('{:#04x}'.format(data))