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

Python Str to Int - Very Simple but tricky

我的 GUI 应用程序有一个小问题。仅显示字符串。我必须执行以下逻辑。我有一个字符串 'a',它是数字。它是五位数。我必须将它递增“1”,然后再次将它放在我的 GUI 上 - 作为“00002”这是代码。

a = '00001'

b = int(a) + 1

print str(b)

预期结果:“00002”- 我得到“2” 我必须让这项工作适用于“00001”或“00043”或“00235”或“03356”或“46579” - 我想说 - 它必须适用于 'a'

a = '00001'

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

>>> b
'00002'

或者干脆...

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

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

有什么诀窍

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

这里的5表示号码必须是5位数字。 zfill(number) 所做的是在字符串的开头添加零,直到字符串的长度为 number 个字符(在本例中为数字)。

希望对您有所帮助。

有多种实现方法:

方法 1:使用 format

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

方法 2:使用 zfill

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

方法 3:使用 %

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

选择最适合你的:)