在 Python v2.6 中,我可以通过以下两种方式之一获得整数的十六进制:
print(("0x%x")%value)
print(hex(value))
但是,在这两种情况下,十六进制数字都是小写的。我怎样才能得到这些大写?
在 Python v2.6 中,我可以通过以下两种方式之一获得整数的十六进制:
print(("0x%x")%value)
print(hex(value))
但是,在这两种情况下,十六进制数字都是小写的。我怎样才能得到这些大写?
大写 X(使用sprintf 样式格式的Python 2 和 3 ):
print("0x%X" % value)
或者在 python 3+ 中(使用.format
字符串语法):
print("0x{:X}".format(value))
或在 python 3.6+ 中(使用格式化的字符串文字):
print(f"0x{value:X}")
只需使用上()。
intNum = 1234
hexNum = hex(intNum).upper()
print('Upper hexadecimal number = ', hexNum)
输出:
Upper hexadecimal number = 0X4D2
通过使用大写%X
:
>>> print("%X" % 255)
FF
更新 Python 3.6 时代:只需在格式部分中使用“X”,在 f-strings 中:
print(f"{255:X}")
(f 字符串在 - 之前接受任何有效的 Python 表达式,:
包括直接数字表达式和变量名)。
print(hex(value).upper().replace('X', 'x'))
正确处理负数。
使用 f-strings 的更多 Python 3 习惯用法是:
value = 1234
print(f'0x{value:X}')
'0x4D2'
注释(以及为什么这不是重复的):
f'{value}'
;实际上没有人将(硬编码)十六进制文字放入实际代码中。做变量插值有很多陷阱:不是f'{x:value}'
也不f'{0x:value}'
是f'{value:0x}'
,甚至f'{value:%x}'
我也尝试过。绊倒的方法有很多。在重新阅读了四个教程和 whatsnew 文档后,我仍然花了 15 分钟的反复试验来获得语法。这个答案显示了如何正确获得 f 字符串变量插值;其他人没有。