我如何以零开头增加整数?

时间:2019-06-19 19:02:34

标签: 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

谁能告诉我最佳解决方案。

5 个答案:

答案 0 :(得分:3)

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

只需划分为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

答案 1 :(得分:2)

根据您的时间:

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循环(如其他提到的那样)。

答案 2 :(得分:1)

如果只是打印问题,且前导零不重要,则可以像下面那样使用print formatting(“ 02”是宽度):

x + (x**y) + (x**(x**y)) + ((x**y)**(x**(x**y)))

答案 3 :(得分:0)

x = 2
x = ('%02d' % x)
print(str(int(x) + 1).zfill(len(x)))
>> '03'

一旦将其转换为int,就必须将其保留在字符串中,因为它会占用更多的空间来存储对象,所以它会剥去前导0。

答案 4 :(得分:0)

如果要打印的数字小于10,则要以零开头,那么您可以执行以下操作:

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