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

问题描述 投票:0回答:1

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

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

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

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

python-3.x string-formatting
1个回答
0
投票

这样做的作用是重复

{:02X}
3次

("{:02X}" * 3)

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

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

现在,

:02X
的意思是:

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

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

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}

© www.soinside.com 2019 - 2024. All rights reserved.