首页 > 解决方案 > 将int格式化为带有0x前缀的大写十六进制字符串?

问题描述

我有一个整数变量:

>>> a = id("string")

我想格式化a为带有前缀的大写十六进制字符串0x。最好的方法是什么?

这些是一些不正确的输出:

>>> f"{a:#x}"
'0x115afcae8'

>>> f"{a:#X}"
'0X115AFCAE8'

>>> f"{a:X}"
'115AFCAE8'

可以0x通过添加到最后一个来获得正确的输出:

>>> f"0x{a:X}"
'0x115AFCAE8'

但这真的是最干净的方法吗?奇怪的是,我无法仅使用极其庞大的字符串格式化 mini-language来做到这一点。

标签: pythonhexstring-formattingpython-3.8

解决方案


好像真的是这样

>>> f"0x{a:X}"
'0x115AFCAE8'

是最好的方法,因为这不能仅通过字符串格式来完成。


推荐阅读