我有一个字符串变量:
str1 = '0000120000210000'
我想将字符串转换为整数而不会丢失前 4 个零字符。换句话说,我希望整数变量也将前 4 个零数字存储为整数的一部分。
我尝试了该int()
功能,但无法保留前四位数字。
您可以使用两个整数,一个存储数字的宽度,另一个存储数字本身:
kw = len(s)
k = int(s)
要将数字重新组合成一个字符串,请使用format
:
print '{:0{width}}'.format(k, width=kw) # prints 0000120000210000
但是,一般来说,您不应该将标识符(例如信用卡号、学生 ID 等)存储为整数,即使它们看起来是整数。只有在需要进行算术运算时才应使用这些上下文中的数字,并且通常不使用标识符进行算术运算。
您想要的根本无法完成。整数值不存储前导零,因为它们可以有任意数量。所以,不能说要储存多少。
但是,如果您想print
那样做,可以通过formatting output
.
编辑: -
添加了来自 OP的 @TimPietzcker 的评论以做出完整的答案:-
除非您打算用它进行算术运算,否则您永远不应该将数字存储为整数。在所有其他情况下,它们应存储为字符串