我將顏色值轉換爲字符串值,但是當我得到0時,字符串太短,我必須在它後面手動添加「00」。如何將顏色轉換爲具有相同大小的字符串?
在Python中解決這個問題最優雅的方式是什麼?
print "#" + str(self.R) + str(self.G) + str(self.B)
if self.R is 0 then then get a short short string。
我將顏色值轉換爲字符串值,但是當我得到0時,字符串太短,我必須在它後面手動添加「00」。如何將顏色轉換爲具有相同大小的字符串?
在Python中解決這個問題最優雅的方式是什麼?
print "#" + str(self.R) + str(self.G) + str(self.B)
if self.R is 0 then then get a short short string。
使用格式字符串:
"#%02X%02X%02X" % (self.r, self.g, self.b)
會給你你可能想要的東西。如果您確實希望像您的示例中那樣使用小數點後的值,請改用"%03d"
。
print "#" + str(self.R).rjust(2,"0") + str(self.G).rjust(2,"0") +
str(self.B).rjust(2,"0")
會正常工作。它會變成0
成00
和1
到01
等
假設你正在使用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)
我收到以下錯誤:print「#{0:02} {1:02} {2:02}」。格式(self.R,self.G,self.B) ValueError:'='alignment not allowed在字符串格式說明符中 – aneuryzm 2010-10-22 18:39:09
Format也可以解決合格屬性:
print('#{s.R:02x}{s.G:02x}{s.B:02x}'.format(s=self))
你的問題有點不清楚。你能給出R G和B的一些示例值以及你想要這些值的輸出值嗎? – 2010-10-22 17:28:53