我需要打印出两个带前导零的十六进制数字。我的原始代码是这样做的:
"<0x%08x 0x%08x>" % (x, y)
我试着用一个f字符串替换它:
f"<{x:#08x} {y:#08x}>"
但是当我用#的时候没有前导零。
# will insert 0x
0 should add leading zeroes
8 should make it 8 digits after the leading 0x
x will use lower-case hex
所以看起来'#'和指定宽度是不兼容的?
我期待着这样的东西:
x=0x600000
y=0x200000
print("<{x:#08x} {y:#08x}>")
将显示:
<0x00600000 0x00200000>
但实际结果是:
<0x600000 0x200000>
1条答案
按热度按时间83qze16e1#
我相信
0x
字符是width
的一部分。因此,在宽度说明符上加2。例如: