可能是一个愚蠢的问题,但是在python中有一种简单的方法可以自动用零填充数字到固定长度吗?我无法在python文档中找到这个,但我可能看起来不够努力? E.I.我希望bin(4)返回00100而不是100.是否有一种简单的方法可以确保输出为6位而不是3位?
答案 0 :(得分:11)
字符串有.zfill()
方法用零填充它:
>>> '100'.zfill(5)
'00100'
但是对于二进制数,我会使用字符串格式:
>>> '{0:05b}'.format(4)
'00100'
:05b
格式规范将传入的数字格式化为二进制,5位数,零填充。请参阅Python format string syntax。我在这里使用了str.format()
,但built-in format()
function可以使用相同的格式说明,减去{0:..}
占位符语法:
>>> format(4, '05b')
'00100'
如果你觉得更容易。
答案 1 :(得分: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'
答案 2 :(得分:3)
这是format内置函数的作业:
>>> format(4, '05b')
'00100'