如何在前导零数中增加整数

  • 本文关键字:增加 整数 python
  • 更新时间 :
  • 英文 :


我无法在前导零数字中递增数字。

a = 2
a = ('%02d' % a) #02
a = a + 1
print(a)

代码错误:

TypeError: can only concatenate str (not "int") to str

预期成果:

02
03
04
05

谁能告诉我最好的解决方案。

当你这样做的时候:

a = a + 1

a 是字符串类型。通过添加1,您将stringint类型组合在一起,这在这种意义上是不允许的。

你可以做的是这个(同时保持相同的结构以获得千里眼(

a = 2
b = ('%02d' % a) #02
print(b)
a = a + 1
b = ('%02d' % a) #02
print(b)
#etc.

如果您不想编写所有单独的案例,请考虑使用 for 循环(如其他人提到的(。

您正在混合类型。通过执行a = a + 1,您正在尝试向string添加int

只需除以 2 个变量:

a = 2
for i in range(4):
    a_str = ('%02d' % a)
    a = a + 1
    print(a_str)

或者,如果您只想打印,甚至可以保存一个变量:

a = 2
for i in range(4):
    print('%02d' % a)
    a = a + 1

如果这只是一个打印问题,并且前导零微不足道,那么您可以使用如下所示的打印格式("02"是宽度(:

for a in range(1, 12):
    print(format(a, "02"))
# output
01
02
03
04
05
06
07
08
09
10
11

答案如下:

举个例子"i",它以 0001 开头,我递增"i",但 python 隐式删除了零我正在使用 for 循环来增加"i"值

length = 4  # number of digits like 0001
for i in range(1,15):
    print('0' * (length - len(str(i))) + str(i))

输出将是:

0001, 0002, 0003....0010 and so on 
x = 2
x = ('%02d' % x)
print(str(int(x) + 1).zfill(len(x)))
>> '03'

您必须将其保存在字符串中,因为一旦将其转换为 int,它就会去除前导 0,因为拥有这些将使用更多空间来存储对象。

如果要

打印一个数字小于 10 时带有前导零的数字,那么您可以这样做:

a = 2
print(('0' if a < 10 else '') + str(a))  # 02

最新更新