我无法以零开头的数字递增。
a = 2
a = ('%02d' % a) #02
a = a + 1
print(a)
代码错误:
TypeError: can only concatenate str (not "int") to str
预期结果:
02
03
04
05
谁能告诉我最佳解决方案。
答案 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
,您可以组合string
和int
类型,在这种情况下是不允许的。
您可以做的是(同时保持相同的结构以保持个性)
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