2014-09-25 92 views
0

蟒蛇的xrange這就是我想要做的事:0 * L到L

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) 

,但它給我一個錯誤告訴我:格式化

+0

什麼' 「d」 %x'是吧' 「%d」 %x'? – Kasramvd 2014-09-25 13:56:58

回答

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' 
+0

我實際上想從0000到9999循環,但我想要的長度由一個變量控制,它可能從00 99 ..etc – s4my 2014-09-25 14:29:46

+0

@ s4my,答案是字符串格式化部分(for '循環)。你可以在我的答案中重用你的'for'循環。 – falsetru 2014-09-25 14:30:42

+0

@ s4my,'爲x在xrange(長度):密碼='%s-%0 * d'%(username,l,x)' – falsetru 2014-09-25 14:32:20