2024-10-05 14:28:28 发布
网友
我有一个函数getNextSeqNo()。我希望它在调用时增加数字字符串,即0000000000到0000000001,然后再到0000000002。我该怎么做?
getNextSeqNo()
0000000000
0000000001
0000000002
我写的如下:
def __init__(self) : self.seq = '0000000000' def getNextSeqNo(self) : self.seq = str(int(self.seq) +1) return(self.seq)
我得到1作为输出,而不是0000000001。
用^{}格式化您的号码:
self.seq = format(int(self.seq) + 1, '010d')
更好的方法是,不要存储字符串,而是存储整数并返回格式化版本:
def __init__(self): self.seq = 0 def getNextSeqNo(self): self.seq += 1 return format(self.seq, '010d')
使用010d格式将整数输出为0填充的字符串,包含10个字符:
010d
>>> format(0, '010d') '0000000000' >>> format(42, '010d') '0000000042'
可以将字符串转换为int并使用
self.seq = '%010d' % (int(self.seq) + 1) return self.seq
如果不需要self.seq作为字符串,您可以
self.seq
def __init__(self) : self.seq = 0 def getNextSeqNo(self) : self.seq += 1 return '%010d' % self.seq
最快、最简单,但肯定不是最清楚的:
str(int('9' + self.seq) + 1)[1:]
它的工作原理是在转换为整数之前添加一个前导数字,以保留所有前导零,然后在转换回字符串之后剥离该前导数字。它的优点是不需要事先知道需要多少位数字。
用^{} 格式化您的号码:
更好的方法是,不要存储字符串,而是存储整数并返回格式化版本:
使用
010d
格式将整数输出为0填充的字符串,包含10个字符:可以将字符串转换为int并使用
如果不需要
self.seq
作为字符串,您可以最快、最简单,但肯定不是最清楚的:
它的工作原理是在转换为整数之前添加一个前导数字,以保留所有前导零,然后在转换回字符串之后剥离该前导数字。它的优点是不需要事先知道需要多少位数字。
相关问题 更多 >
编程相关推荐