python 字符串格式 %x 和 %#x 有什么区别(哈希标记十六进制?)

python string format whats the difference between %x and %#x (hash tag hexadecimal?)

我正在将一些 python 移植回 .NET,我似乎无法弄清楚 %x%#x

之间的区别
   print "%s: [%#x][%x] %s" % (message, self.eip, self.opcode,
                                    i.get_disasm())

与下面的这个函数一样,它似乎只是一个普通的 Hex() 函数,在右前方附加了 0x 为什么不直接使用 %x 呢?

def prettify_value(value):
    if TypeOf value, (long Is int):
        value = '%#x' % value
    return value

是的,我在这里似乎找不到答案:https://docs.python.org/2/library/string.html

没关系,我发现它非常精美

'#' 选项仅对整数有效,并且仅对二进制、八进制或十六进制输出有效。如果存在,它指定输出将分别以“0b”、“0o”或“0x”为前缀。

“#”选项仅对整数有效,并且仅对二进制、八进制或十六进制输出有效。如果存在,它指定输出将分别以“0b”、“0o”或“0x”为前缀。