在python中拆分数字串

时间:2018-02-17 02:45:58

标签: string python-2.7 int

当我尝试用' 0'分割一串数字时,它会给我一个错误的输出。

for x in str(0123):
    print x
8
3

但如果没有0,那就是正确的。

for x in str(1234):
    print x
1
2
3
4

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

当您输入数字0123时,它会以整数形式输入。整数没有内置的前导零,因此在123函数将其转换为字符串之前,它会将自身缩减为str()

因此,您的计划会看到str(123)而不是str(0123)

您可以通过使用引号而不是str()将数字设为字符串来解决此问题:

for x in "0123":
    print x

编辑:根据评论,我意识到我的解释有错误。尽管关于整数的内容没有内置零,但实际上Python 2中的行为却做了不同的事情。

用前导零写的整数是octal numbers in python。所以当你放0123时,str()没有像我说的那样看到123,它实际上看到的是1*8^2+2*8+3 = 83,并转换str(83),这就是你的输出越来越好了。

无论如何,关闭引号中的数字仍然可以得到你想要的东西,只是出于与我想的不同的原因。