每日kata~06~int2hex
2020-05-06 本文已影响0人
Lacia
题目:
https://www.codewars.com/kata/513e08acc600c94f01000001
如果参数超出[0,255]范围,取离最近的合法值
rgb(255, 255, 255) # returns FFFFFF
rgb(255, 255, 300) # returns FFFFFF
rgb(0,0,0) # returns 000000
rgb(148, 0, 211) # returns 9400D3
解
我的solution
def int_to_hex(n):
if n<0:
n = 0
elif n>255:
n = 255
r = (hex(n).split('0x'))[1]
if r.isdigit() is False:
r = r.upper()
print(r)
if len(r) < 2:
return '0'+r
else:
return r
def rgb(r, g, b):
#your code here :)
return int_to_hex(r)+int_to_hex(g)+int_to_hex(b)
大神的solution
def rgb(r, g, b):
round = lambda x: min(255, max(x, 0))
return ("{:02X}" * 3).format(round(r), round(g), round(b))
简洁明了优美(:з」∠)
MEMO
{:02X} :X是16进制标准输出形式,02是2位对其,左侧补0
lambda忘光光,需要复习