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

Shi*_*pta 3 python binary numbers separator python-3.x

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

id = 18
get_bin = lambda x, n: format(x, 'b').zfill(n)
bin_num = get_bin(id, 17)
Run Code Online (Sandbox Code Playgroud)

我得到的输出是 -

00000000000010010
Run Code Online (Sandbox Code Playgroud)

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

0_0000_0000_0001_0010
Run Code Online (Sandbox Code Playgroud)

我怎么才能得到它?

anu*_*rag 6

使用 good'ol pal,Python 的格式规范迷你语言

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

  • 这里似乎有一些错误。宽度 18 产生相同的输出。无论如何+1.. (3认同)

Nk0*_*k03 3

单程:

import textwrap
result = '_'.join(textwrap.wrap(bin_num[::-1], 4))[::-1]
Run Code Online (Sandbox Code Playgroud)

输出:

'0_0000_0000_0001_0010'
Run Code Online (Sandbox Code Playgroud)

  • @anurag,这就是为什么我添加它是解决问题的“一种方法”!据我所知还有其他更好的方法。 (3认同)