【问题标题】:Python Str to Int - Very Simple but tricky [duplicate]Python Str 到 Int - 非常简单但很棘手 [重复]
【发布时间】:2017-01-03 08:58:01
【问题描述】:
我有一个小问题,在我的 GUI 应用程序中。只需要显示字符串。我必须执行以下逻辑。我有一个字符串'a',它是数字。是五位数。我必须将它增加 '1' 并再次将它放在我的 GUI 上 - 作为“00002”这是代码。
a = '00001'
b = int(a) + 1
print str(b)
预期结果:“00002” - 我得到“2”
我必须使这项工作适用于“00001”或“00043”或“00235”或“03356”或“46579”-我想说-它必须适用于“a”中的任意位数
【问题讨论】:
标签:
python
string
python-2.7
int
string-formatting
【解决方案1】:
a = '00001'
b = str(int(a) + 1).zfill(5)
>>> b
'00002'
或者干脆……
a = 1
a += 1
print(str(a).zfill(5))
【解决方案2】:
结果与您预期的不一样,因为int() 函数忽略了前导零。前导零不存储在整数中。
诀窍是什么
a = '00001'
b = int(a) + 1
print str(b).zfill(5)
这里的5 表示该号码必须为5 位数字。 zfill(number) 所做的是在字符串的开头添加零,直到字符串的长度为 number 个字符(在本例中为数字)。
希望对您有所帮助。 ?
【解决方案3】:
有多种方法可以实现:
方法一:使用format
>>> format(2, '06d')
'000002'
方法二:使用zfill
>>> str(2).zfill(5)
'00002'
方法3:使用%
>>> "%05d" % (2,)
'00002'
选择最适合你的 :)