如何在打印十六进制值时让Python使用大写字母?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在打印十六进制值时让Python使用大写字母?相关的知识,希望对你有一定的参考价值。

在Python v2.6中,我可以通过以下两种方式之一获取整数的十六进制:

print(("0x%x")%value)
print(hex(value))

但是,在这两种情况下,十六进制数字都是小写。如何以大写字母获取这些内容?

答案

Capital X(使用sprintf-style formatting的Python 2和3):

print("0x%X" % value)

或者在python 3+中(使用.format string syntax):

print("0x{:X}".format(value))

或者在python 3.6+中(使用formatted string literals):

print(f"0x{value:X}")
另一答案

只需使用upper()。

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-strings接受:之前的任何有效Python表达式 - 包括直接数字表达式和变量名称)。

另一答案

使用f-strings的Python 3习语越多:

value = 1234
print(f'0x{value:X}')
'0x4D2'

注释(以及为什么这不重复):

  • 显示如何避免大写'0x'前缀,这是其他答案中的问题
  • 展示了如何获得变量插值f'{value}';实际上没有人将十六进制文字放在实际代码中。插值有很多陷阱:它不是f'{x:value}',也不是f'{0x:value}',也不是f'{value:0x}',甚至也不是f'{value:%x}',我也尝试过。有很多方法可以绊倒。在重读了四个教程和whatsnew文档以获取语法之后,我仍然需要15分钟的反复试验。这个答案显示了如何正确获得f-string变量插值;别人不这样做。

以上是关于如何在打印十六进制值时让Python使用大写字母?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中使用 json.dumps() 将整数打印为十六进制字符串

C编程以十六进制的长双精度打印浮点数

求教在python用 大写字母打印字符如何实现

python如何将ascii码转换为字母

Python - 如何在字符串中查找一个单词,然后只打印 x 个字母

如何防止 Python 打印添加换行符或空格? [复制]