0

这就是我想要做的:

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)  

但它给了我一个错误,告诉我:并非所有参数都在字符串格式化期间转换

4

1 回答 1

1

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

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

根据字符串格式化操作文档

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

替代使用str.format

>>> '-{:0{}}'.format(9, 4)
'-0009'
>>> '-{:0{}}'.format(9, 9)
'-000000009'
于 2014-09-25T13:57:48.587 回答