首页 > 解决方案 > Python中fromhex格式的解释

问题描述

我正在查看具有这样一行的 Python 代码:

the_text = bytearray.fromhex('{:0256x}'.format(random.getrandbits(16*8)))

有人可以解释一下右手的表达方式吗?我认为它应该生成一些随机数据,但是怎么{:0256x}办?

标签: pythonarraysformat

解决方案


{:0256x}部分由.format()方法解释。

它被传递给的参数的值替换.format(),并且:0256x告诉格式取一个数值并将其表示为十六进制,至少使用 256 个位置。

例如f'{100:02x}'将打印为64. f'{100:04x}'作为0064. f'{100:01x}'仍会打印为64,因为它不适合单个数字的十六进制。

在您的情况下,无论random.getrandbits(16*8)结果如何,都将转换为(至少)256 个字符的十六进制表示,.fromhex()然后转换为字节数组。它永远不会更多,因为random.getrandbits(16*8)只会生成可以使用 256 位十六进制显示的值。


推荐阅读