首页 > 解决方案 > 将数字分成更小的组

问题描述

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

我有一个 6 位数的 int 值,我需要将其分成三、三位数字。

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

输入 -

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

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

标签: python-3.x

解决方案


如果存在 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')

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


推荐阅读