在Python中拆分数字字符串
- 论坛
- 在Python中拆分数字字符串
27 浏览
匿名的
0 Comments
问题出现的原因是当输入数字0123
时,它被作为整数处理。整数没有内置的前导零,因此在被str()
函数转换为字符串之前,它会将自己减少为123
。
所以你的程序看到的是str(123)
而不是str(0123)
。
你可以通过使用引号将数字变为字符串来解决这个问题,而不是使用str()
函数:
for x in "0123": print x
编辑:根据评论,我意识到我的解释有一个错误。虽然关于整数没有内置的前导零这一点是正确的,但Python 2中实际上有一个不同的行为。
以前导零写的整数在Python中是八进制数。所以当你输入0123
时,str()
并不像我说的那样看到123
,实际上它看到的是1*8^2+2*8+3 = 83
,然后转换为str(83)
,这就是你得到的输出。
无论如何,用引号括起来的数字仍然可以得到你想要的结果,只是原因与我想的不同。