将数字分成较小的组

时间:2019-10-22 03:24:47

标签: python-3.x

我相信这个问题更倾向于开发逻辑而不是实现。

我有一个6位数的整数值,我需要将其分为三,三位数。

这是一项琐碎的任务,但是我不能使用任何索引或切片操作。

输入-

rgb1 = 220020060

rgb2 = 189252201

我的预期输出格式为

r1 , g1, b1 = 220, 020, 060
r2,  g2, b2 = 189, 252, 201

我尝试使用divmod(),但不确定如何获取中间值集(如果其形式为0x0,其中x是任何一位整数)。

例如:

r, rest = divmod(rgb1,10**6)

r = 220, rest = 20060

但是我不确定如何继续提取更多数字。

1 个答案:

答案 0 :(得分:1)

如果存在0xx情况,我将把数字转换为字符串,因为'int'无法显示前导零。

我的代码:

def splitter(num):
    r1, rest=divmod(num,10**6)

    if len(str(r1)) !=3:
        r1=str(r1)
        r1=r1.zfill(3) 

    if len(str(rest)) !=6:
        rest=str(rest)
        rest=rest.zfill(6)

    g1,rest=divmod(int(rest),10**3)

    if len(str(g1)) !=3:
        g1=str(g1)
        g1=g1.zfill(3)

    if len(str(rest)) !=3:
        rest=str(rest)
        rest=rest.zfill(3)

    b1=rest

    return r1,g1,b1

输出:

>>> splitter(220020060)
(220, '020', '060')

您可以编辑代码以所需的格式显示输出!