【问题标题】:python string format whats the difference between %x and %#x (hash tag hexadecimal?)python字符串格式%x和%#x有什么区别(哈希标签十六进制?)
【发布时间】:2015-09-10 23:20:00
【问题描述】:

我正在将一些 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”为前缀。

【问题讨论】:

  • 想知道投反对票的理由。因为OP找到了答案并分享了它?虽然诚然,在询问 SO 之前在命令行等上尝试它会更好。
  • 是的,不管我想删除这个问题,但是没有理由像我这样也无法弄清楚这一点的人会从谷歌搜索中发现这很有帮助

标签: python string hex string-formatting number-formatting


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 2011-05-18
    • 2012-08-15
    • 2011-05-04
    • 2015-07-26
    相关资源
    最近更新 更多