如何在python中递增数字字符串'0000000001'?

Kat*_*t.S 5 python string increment

我有一个功能getNextSeqNo().我希望它在调用时增加数字字符串,即0000000000to 0000000001,然后再调用0000000002.我该怎么做?

我写的如下:

def __init__(self) :
    self.seq = '0000000000'

def getNextSeqNo(self) :
    self.seq = str(int(self.seq) +1)
    return(self.seq)
Run Code Online (Sandbox Code Playgroud)

我得到1作为输出而不是0000000001.

Kha*_*lid 6

您可以将字符串转换为int并使用类似的东西

self.seq = '%010d' % (int(self.seq) + 1)
return self.seq
Run Code Online (Sandbox Code Playgroud)

如果你不需要self.seq成为一个字符串,你可以做

def __init__(self) :
    self.seq = 0

def getNextSeqNo(self) :
    self.seq += 1
    return '%010d' % self.seq
Run Code Online (Sandbox Code Playgroud)


Mar*_*som 5

最快捷,最简单,但肯定不是最清楚的:

str(int('9' + self.seq) + 1)[1:]
Run Code Online (Sandbox Code Playgroud)

它的工作原理是在转换为整数之前添加一个前导数字,以保留所有前导零,然后在转换回字符串后剥离该前导数字.它的优点是不需要事先知道需要多少位数.