在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中拆分数字字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在python中拆分url字符串[重复]。

在Python中使用多个分隔符拆分字符串[重复]

python将字符串数字拆分为数字

如何在Python中的正则表达式上拆分字符串[重复]

在javascript中拆分字符串以获取数据[重复]

如何在Python中将具有名称(1个或多个单词)和数字的单行输入字符串拆分为[“名称”,“数字”]?