在 Python 中的二进制数中添加下划线作为分隔符

问题描述

我试图将十进制数转换为 17 位二进制数并在其中添加下划线作为分隔符。 我正在使用以下代码 -

id = 18
get_bin = lambda x,n: format(x,'b').zfill(n)
bin_num = get_bin(id,17)

我得到的输出格式为 -

00000000000010010

我正在尝试获得以下输出 -

0_0000_0000_0001_0010

我怎样才能得到它?

解决方法

使用 good'ol pal,Python 的 Format Specification Mini-Language

id = 18
width = 17
bin_num = format(id,'0{}_b'.format(width+3))
print(bin_num)
#0_0000_0000_0001_0010
,

一种方式:

import textwrap
result = '_'.join(textwrap.wrap(bin_num[::-1],4))[::-1]

输出:

'0_0000_0000_0001_0010'
,

您需要将 _ 添加到格式字符串中,并且您不需要使用 zfill - 017_b 格式的最小长度为 17 个字符,零填充空格,并在其间使用 _。

print(format(18,'021_b')) 

给予

0_0000_0000_0001_0010

还要注意在二进制模式下,下划线始终是您需要的每 4 位数字。 More

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...