如何将颜色转换为相同大小的字符串?

0 投票
4 回答
576 浏览
提问于 2025-04-16 05:55

我正在把颜色值转换成字符串值,不过当我得到0的时候,字符串太短了,我得手动在后面加上“00”。

在Python中,有什么优雅的方法来解决这个问题吗?

print "#" + str(self.R) + str(self.G) + str(self.B)

如果我的self.R是0,那我得到的字符串就太短了。

4 个回答

3

格式化也可以处理带有限定符的属性:

print('#{s.R:02x}{s.G:02x}{s.B:02x}'.format(s=self))
4

假设你使用的是Python 2.6或更新的版本,你可以使用str.format这个功能:

print "#{0:02}{1:02}{2:02}".format(self.R, self.G, self.B)

如果你想要以十六进制的形式显示(你可能会想要),那么在这里加一个大写的X:

print "#{0:02X}{1:02X}{2:02X}".format(self.R, self.G, self.B)
4

使用格式化字符串:

"#%02X%02X%02X" % (self.r, self.g, self.b)

这样做会给你想要的结果。如果你想要的值是十进制的,就像你例子里那样,可以用 "%03d" 来替代。

撰写回答