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'
选择最适合你的:)
我的 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'
选择最适合你的:)