if statement - Python - Applying multiple conditions output in list comprehension -
i have been trying code rgb hex function in python when faced problem wasn't able figure out how do. here function itself:
def rgb(r, g, b): return ''.join([format("{0:x}".format(x).rjust(2, "0").upper()) if int(x) >= 0 else "00" if int(x) <= 255 else "ff" x in [r,g,b]])
the important part: if int(x) >= 0 else "00" if int(x) <= 255 else "ff"
what want able apply different output if number lower 0 or higher 255. first if works, second ignored. how can multiple conditions in list comprehension?
you current ... if ... else ...
clause doesn't make sense:
format("{0:x}".format(x).rjust(2, "0").upper()) if int(x) >= 0 else "00" if int(x) <= 255 else "ff"
means:
format(...)
ifint(x) >= 0
else, if
int(x) < 0
,00
ifint(x) <= 255
(but less 0 must less 255);- else
ff
presumably meant have:
"ff" if int(x) > 255 else ("00" if int(x) < 0 else format(...))
but surely, isn't easier use standard max-min construct?
"{0:02x}".format(max(0, min(int(x), 255)))
note here 0 padding , upper casing in format specifier (02x
)
Comments
Post a Comment