我相信这个问题更倾向于开发逻辑而不是实现。
我有一个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
但是我不确定如何继续提取更多数字。
答案 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')
您可以编辑代码以所需的格式显示输出!