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 = divmod(rgb1,10**6)
r = 220, rest = 20060
但我不确定如何继续提取更多数字。
解决方案
如果存在 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')
您可以编辑代码以您需要的格式显示输出!
推荐阅读
- php - PHP, SQL 检查值是否大于或小于数据库值
- jms - 分页后 ActiveMQ Artemis 的性能下降
- docker - 在 jenkins 管道中的 docker build 中运行 dpkg 命令会抛出“无法访问存档:没有这样的文件或目录”
- python - DFS Snake 求解算法(NoneType 对象没有 len)
- php - 如何独立使用 Laravel 队列和事件
- python - 多个返回值,只有一个'if'检查函数返回
- apache-nifi - 迁移 flow.xml.gz 后未授权 Nifi 进程组和处理器
- r - 如何使用ggplot2将我的图例水平而不是垂直?
- c++-cli - (C++/CLI) 如何在 C++ CLI 中获取从本机代码到托管代码的回调?
- java - 有哪些选项可以在 android 项目中调用 Lua 代码?