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