Python Str to Int - 非常简单但很棘手

时间:2016-08-26 16:08:28

标签: python string python-2.7 int string-formatting

我的GUI应用程序中存在一个小问题。只需要显示字符串。我必须执行以下逻辑。我有一个字符串' a',这是数字。这是五位数。我必须通过' 1'来增加它。并再次将它放在我的GUI上 - " 00002"这是代码。

a = '00001'

b = int(a) + 1

print str(b)

预期结果:" 00002" - 我得到" 2" 我必须为" 00001"或" 00043"或" 00235"或" 03356"或" 46579" - 我想说 - 它必须适用于' a'

中的任意数字位数

3 个答案:

答案 0 :(得分:6)

有多种方法可以实现它:

方法1 :使用format

>>> format(2, '06d')
'000002'

方法2 :使用zfill

>>> str(2).zfill(5) 
'00002'

方法3 :使用%

>>> "%05d" % (2,)
'00002'

选择最适合你的东西:)

答案 1 :(得分:4)

结果与预期不符,因为int()函数忽略了前导零。前导零不存储在整数中。

诀窍是什么

a = '00001'
b = int(a) + 1
print str(b).zfill(5)

此处5表示该数字必须为5位数。 zfill(number)所做的是在字符串的开头添加零,直到字符串的长度为number个字符(在这种情况下为数字)。

希望它有所帮助。

答案 2 :(得分:1)

a = '00001'

b = str(int(a) + 1).zfill(5)

>>> b
'00002'

或者只是......

a = 1
a += 1
print(str(a).zfill(5))