2

可能是一个愚蠢的问题,但在 python 中是否有一种简单的方法可以自动将带有零的数字填充到固定长度?我在 python 文档中找不到这个,但我可能还不够努力?ei 我希望 bin(4) 返回 00100,而不仅仅是 100。有没有一种简单的方法可以确保输出是 6 位而不是 3 位?

4

3 回答 3

11

字符串有一种.zfill()用零填充它的方法:

>>> '100'.zfill(5)
'00100'

但是,对于二进制数,我会使用字符串格式:

>>> '{0:05b}'.format(4)
'00100'

:05b格式化规范将传入的数字格式化为二进制,用 5 位数字填充,零填充。请参阅Python 格式字符串语法。我在str.format()这里使用过,但内置format()函数可以采用相同的格式化指令,减去{0:..}占位符语法:

>>> format(4, '05b')
'00100'

如果你觉得这更容易。

于 2012-11-28T07:12:12.377 回答
3

试试这个...

In [11]: x = 1

In [12]: print str(x).zfill(5)
00001

In [13]: bin(4)
Out[13]: '0b100'

In [14]: str(bin(4)[2:]).zfill(5)
Out[14]: '00100'
于 2012-11-28T07:10:08.653 回答
3

这是格式内置函数的工作:

>>> format(4, '05b')
'00100'
于 2012-11-28T07:12:20.710 回答