python 十六进制数字格式中的数字分组

Cim*_*ali 3 python hex number-formatting python-3.4

假设我有一堆十六进制数字,我在 python 中打印,例如,用于调试目的的地址,并且我希望能够直观地比较它们。对此的一个很大帮助是对数字进行分组,类似于我们对小数使用千位分隔符的方式。

\n\n

这也是为什么当你十六进制转储某些数字时,数字按 4 分组,而不是深不可测的长十六进制字符字符串。

\n\n

不可读: 47167689711616
\n勉强可读: 2ae61563e000
\n半可读: 47,167,689,711,616
\n最可读: 2ae6,1563,e000

\n\n

我并不关心分隔符是什么,是否按 2、3 或 4 位数字分组。但是,分组选项似乎不起作用:

\n\n
>>> \'{:x}\'.format(47167689711616)\n\'2ae61563e000\'\n>>> \'{:,x}\'.format(47167689711616)\nTraceback (most recent call last):\n  File "<stdin>", line 1, in <module>\nValueError: Cannot specify \',\' with \'x\'.\n
Run Code Online (Sandbox Code Playgroud)\n\n

I\xe2\x80\x99m 使用的机器(并且 I\xe2\x80\x99m 不是 admin)仅具有python 3.4

\n

Cim*_*ali 7

新的分组选项 \xe2\x80\x9c _ \xe2\x80\x9d 已python 3.6 中引入了

\n\n
\n

\'_\' 选项表示对于浮点表示类型和整数表示类型 \'d\' 使用下划线作为千位分隔符。对于整数表示类型 \'b\'、\'o\'、\'x\'、\n 和 \'X\',每 4 位数字将插入下划线。对于其他演示文稿类型,指定此选项是错误的。

\n\n

在版本 3.6 中更改:添加了 \'_\' 选项(另请参阅\n PEP 515 - 数字文字中的下划线)。

\n
\n\n

例子:

\n\n
>>> \'{:_x}\'.format(47167689711616)\n\'2ae6_1563_e000\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,这对最新的机器有帮助,但对 python 3.4 没有帮助。

\n