在此示例中,我可以使用什么语法来填充具有不同字符的空格?

What syntax could i use to padd spaces with different characters in this example?

提问人:Richard 提问时间:9/19/2023 最后编辑:DaviidRichard 更新时间:9/19/2023 访问量:21

问:

在解决了一些练习后,我从CodeWars上的另一个用户那里找到了这段代码,他使用了格式函数。

def rgb(r, g, b):
    round = lambda x: min(255, max(x, 0))
    return ("{:02X}" * 3).format(round(r), round(g), round(b))

但是经过几次尝试并搜索字符串格式后,我仍然不明白我怎么能(如果我想将来使用类似的东西)在代码“{:02X}”的这一部分中将“0”切换为某些不同的字符

当我尝试使用与零不同的数字时,我当然会得到更多的空格,当我尝试数字以外的其他字符时,我得到了一个错误。

python-3.x 字符串格式化

评论


答:

0赞 Daviid 9/19/2023 #1

这样做是重复 3 次{:02X}

("{:02X}" * 3)

所以格式实际上看到了这一点:

("{:02X}{:02X}{:02X}")

现在,意味着::02X

  • X十六进制格式
  • 02最少 2 个字符,其中 0 作为填充
  • :是值的占位符(您也可以用于强制获取第一个参数,因此实际上会打印 grb 而不是 rgb)0:{1:02X}{0:02X}{2:02X}

如果你想用其他东西填充,你需要改变格式,例如:

def rgb(r, g, b):
    round = lambda x: min(255, max(x, 0))
    return ("{: <16}" * 3).format(round(r), round(g), round(b))

print(rgb(12,255,2))

输出

12 255 2

与左对齐的数字。<

如果要保持十六进制格式,则使用{: >16X}