如何使用前导零增加值?

时间:2009-02-25 20:13:23

标签: python

增加包含前导零的值的最佳方法是什么?例如,我想增加“00000001”。但是,应该注意的是,前导零的数量不会超过30.因此可能会出现“0000012”,“00000000000000099”或“000000000000045”等情况。

我可以想到几种方法,但我想知道是否有人想出一些光滑的东西。

7 个答案:

答案 0 :(得分:26)

使用备受忽视的str.zfill():

str(int(x) + 1).zfill(len(x))

答案 1 :(得分:8)

int('00000001') + 1

如果你想要返回前导零:

"%08g" % (int('000000001') + 1)

答案 2 :(得分:8)

“%% 0%ii”%len(x)%(int(x)+1)

- MarkusQ

P.S。对于x =“0000034”,它会像这样展开:

"%%0%ii" % len("0000034") % (int("0000034")+1)
"%%0%ii" % 7 % (34+1)
"%07i" % 35
"0000035"

答案 3 :(得分:2)

据推测,您具体是指一个整数,表示为带前导零的字符串?

如果是这样的话,我会这样做:

>>> a
'00000000000000099'
>>> l = len(a)
>>> b = int(a)+1
>>> b
100
>>> ("%0"+"%dd" % l) % b
'00000000000000100'

答案 4 :(得分:1)

确定长度,将其转换为整数,递增,然后将其转换回前导零的字符串,使其长度与以前相同。

答案 5 :(得分:1)

将您的号码存储为整数。如果要打印它,请添加前导零。通过这种方式,您可以在不进行转换的情况下轻松完成数学运算,并简化了思维过程。

答案 6 :(得分:-1)

“我的代码在c” int a[6]={0,0,0,0,0,0},i=5,k,p; while(a[0]!=10) { do { for(p=0;p<=i;p++) printf("%d",a[p]); printf("\n"); delay(100); a[i]++; }while(a[i]!=10); for(k=0;k<=i;k++) if(a[i-k]==10) { a[i-(k+1)]++; a[i-k]=0; } }