python xrange,0 * l到l

时间:2014-09-25 13:53:01

标签: python xrange

这就是我想要做的事情:

l = 4
length = 10**l #10000
for x in xrange(length): 
   password = str(username)+str("%02d"%x) #but here instead of 2 i want it to be l

正如你所看到的,我想用一个我自己可以做的变量控制格式字符串 我试着这样做:

password = str(username)+str("%0"+str(l)+"d"%x)  

但它给我一个错误告诉我:在字符串格式化过程中并非所有参数都被转换

1 个答案:

答案 0 :(得分:1)

您可以使用*格式说明符:

>>> '-%0*d' % (4, 9)
'-0009'
>>> '-%0*d' % (9, 9)
'-000000009'

根据String formatting operations documentation

  

最小字段宽度(可选)。 如果指定为' *' (星号),   实际宽度是从元组的下一个元素中读取的值和   要转换的对象是在最小字段宽度和可选之后   精度。

使用str.format替代方案:

>>> '-{:0{}}'.format(9, 4)
'-0009'
>>> '-{:0{}}'.format(9, 9)
'-000000009'