Python 中的 fromhex 格式的解释
explanation of fromhex format in Python
我正在查看 Python 代码,其中有一行如下:
the_text = bytearray.fromhex('{:0256x}'.format(random.getrandbits(16*8)))
谁能解释一下右手的表情,它的作用是什么?我假设它应该生成一些随机数据,但是 {:0256x}
做什么?
{: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 个十六进制位置显示的值。
{:0256x}
表示如果你的号码的他x
十进制字符串表示少于256
个字符,将用0
补齐
我正在查看 Python 代码,其中有一行如下:
the_text = bytearray.fromhex('{:0256x}'.format(random.getrandbits(16*8)))
谁能解释一下右手的表情,它的作用是什么?我假设它应该生成一些随机数据,但是 {:0256x}
做什么?
{: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 个十六进制位置显示的值。
{:0256x}
表示如果你的号码的他x
十进制字符串表示少于256
个字符,将用0