【发布时间】:2015-04-23 10:09:39
【问题描述】:
a = 1
print hex(a)
上面给了我输出:0x1
如何将输出改为0x01?
【问题讨论】:
a = 1
print hex(a)
上面给了我输出:0x1
如何将输出改为0x01?
【问题讨论】:
print "0x%02x"%a
x 作为格式表示“打印为十六进制”。02 表示“用零填充到两个字符”。
【讨论】:
试试:
print "0x%02x" % a
有点毛茸茸的,所以让我分解一下:
前两个字符“0x”按字面意思打印。 Python 只是逐字逐句吐出。
% 告诉 python 后面有一个格式化序列。 0 告诉格式化程序它应该用零填充任何前导空格,而 2 告诉它至少使用两列来完成它。 x 是格式化序列的结尾,表示类型 - 十六进制。
如果您想打印“0x00001”,您可以使用“0x%05x”等。
【讨论】:
您可以使用format:
>>> a = 1
>>> '{0:02x}'.format(a)
'01'
>>> '0x{0:02x}'.format(a)
'0x01'
【讨论】:
% 方法(又名旧式格式)。
你可以使用format:
>>> "0x"+format(1, "02x")
'0x01'
【讨论】:
>>> format(1, '#04x')
'0x01'
【讨论】:
这里是 Python 3.6+ 的 f-string 变体:
a = 1
print(f"{a:0>2x}")
字符串格式说明:
::格式说明符0:填写(0)>: 右对齐字段2: 宽度x: hex 类型【讨论】: