在解决一些练习后,我从 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”切换为某些不同的字符
当我尝试使用不同于零的数字时,我当然得到了更多的空格,当我尝试使用数字以外的其他字符时,我收到了错误。
这样做的作用是重复
{: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}