Python 3.x 将数字分成更小的组
我相信这个问题更倾向于发展逻辑而不是实现 我有一个6位数的int值,我需要把它分成三个,三位数 这是一项微不足道的任务,但我不能使用任何索引或切片操作 输入-Python 3.x 将数字分成更小的组,python-3.x,Python 3.x,我相信这个问题更倾向于发展逻辑而不是实现 我有一个6位数的int值,我需要把它分成三个,三位数 这是一项微不足道的任务,但我不能使用任何索引或切片操作 输入- rgb1 = 220020060 rgb2 = 189252201 我的预期输出是 r1 , g1, b1 = 220, 020, 060 r2, g2, b2 = 189, 252, 201 我尝试过使用divmod(),但不确定如果中间值集的形式为0x0,其中x是任何一位整数,如何获取中间值集 例如: r, rest = d
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
但我不确定如何继续提取更多的数字。如果存在0xx大小写,我会将数字转换为字符串,因为“int”不能显示前导零 我的代码:
def拆分器(num):
r1,rest=divmod(num,10**6)
如果len(str(r1))=三:
r1=str(r1)
r1=r1.zfill(3)
如果len(str(rest))=6:
rest=str(rest)
rest=rest.zfill(6)
g1,rest=divmod(int(rest),10**3)
如果len(str(g1))=三:
g1=str(g1)
g1=g1.zfill(3)
如果len(str(rest))=三:
rest=str(rest)
rest=rest.zfill(3)
b1=休息
返回r1、g1、b1
输出:
拆分器(220020060)
(220, '020', '060')
您可以编辑代码,以所需的格式显示输出 请编辑问题以显示您尝试了什么,并显示您遇到的具体障碍。有关更多信息,请参阅。这是一个很好的方法,但我有一个疑问。代码返回一个int值和两个str值,因此如果我想对“str”值执行操作,我将无法正确执行该操作?@PyWalker27我必须生成一些数字str,因为int不允许您存储以0开头的数字。但是,您仍然可以执行任何想要执行的操作。例如,让我们考虑G1和B1是STR,而R1是int。找到R1,B1和G1的和,你可以做<代码> R1+int(B1)+int(G1)< /代码>,得到和是<代码> 220 + 20 + 60=300 < /代码>是的!我有点困惑,但现在一切都好了。非常感谢。