在python中拆分数字字符串[重复]
Posted
技术标签:
【中文标题】在python中拆分数字字符串[重复]【英文标题】:Splitting strings of numbers in python [duplicate] 【发布时间】:2018-07-27 23:44:36 【问题描述】:当我尝试用“0”分割一串数字时,它给了我一个错误的输出。
for x in str(0123):
print x
8
3
但如果没有0,那就是正确的。
for x in str(1234):
print x
1
2
3
4
有人可以帮忙吗?
【问题讨论】:
在str
中使用' '
。 for x in str('0123'):
当你在 Python 2 中运行它时,数字 0123 被视为八进制数并解析为 83 (eval('0123') == 83
)
【参考方案1】:
当您输入数字0123
时,它会以整数形式输入。整数没有内置的前导零,因此在被str()
函数转换为字符串之前,它会将自身缩减为123
。
所以你的程序看到的是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)
,这就是你得到的输出。
不管怎样,用引号括起来的数字仍然可以得到你想要的,只是出于与我想的不同的原因。
【讨论】:
以上是关于在python中拆分数字字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章