多くの理由があります: 1. rgbはこの場合3つの値を持つタプルでなければなりません。したがって、(255,255,255,1)の代わりにタプルの形で(255,255,255)を渡す必要があります。2. rgbはタプルでなければなりません。文字列の場合、これは機能しません。
"#%02x%02x%02x" % (255, 255, 255)
はそれが
私たちが実行した場合、次の
"#%02x%02x%02x" % (255, 255, 255,1)
が、それはすべての引数がないと言うだろう "#FFFFFF" 期待した結果が得られますPythonインタプリタで次のコマンドを使用してみてください文字列の書式設定中に変換されます。
しかし、質問に表示されたstacktraceは、 '(255、255、255、1)'を単一の文字列として渡しているように見えますが、明らかにその文字列は解析できません。 "(255,255,255,1)"の文字列をタプル(255,255,255)に変換してからフォーマッタに渡してください。文字列でsplit関数を使用して解析し、分割された値からタプルを作成することができます。分割された文字列から角括弧を切り取ることを忘れないでください。
例えば
DEF rgb_to_hex(RGB): 例えば#forあればRGB = "(255、255、255、1)"
new_string = rgb[1:-4] # remove starting brace and , 1) from last
# new_strings will be "255, 255, 255"
string_fractions = input_string.split(",")
# string fractions will be ['255', ' 255', ' 255']
# now notice it is list of strings and we need a tuple of ints
int_tuples = tuple(map(int, input_string.split(",")))
# int_tuples will be (255, 255, 255)
return '#%02x%02x%02x' % int_tuples
[MCVE]を投稿してください。 –
変換する必要があります – cutzero