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

Posted

技术标签:

【中文标题】python字符串格式%x和%#x有啥区别(哈希标签十六进制?)【英文标题】: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 之前在命令行等上尝试它会更好。 是的,不管我想删除这个问题,但是没有理由像我这样也无法弄清楚这一点的人会从谷歌搜索中发现这很有帮助 【参考方案1】:

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

【讨论】:

以上是关于python字符串格式%x和%#x有啥区别(哈希标签十六进制?)的主要内容,如果未能解决你的问题,请参考以下文章

plot和ezplot有啥区别?

Javascript中的parseInt(x)和+(x)有啥区别[重复]

Python中方括号和括号括起来的列表有啥区别?

十六进制代码 (\x) 和 unicode (\u) 字符有啥区别?

html中表达式和%%都是啥意思,有啥区别吗?

python input 2.x 与 3.x区别格式化输出