def tohex(r, g, b):
#your code here :)
def hex1(decimal):
if decimal < 0:
return '00'
elif decimal > 255:
return 'FF'
elif decimal < 17:
return '0'+ hex(decimal)[2:]
else:
return inthex(decimal)[2:]
return (hex1(r) + hex1(g) + hex1(b)).upper()
print rgb(16 ,159 ,-137)
我定义了一个新方法来获取我的十六进制数。但是当谈到(16,159,-137)时,我得到了0109F00
而不是019F00
。为什么还有一个额外的0?
答案 0 :(得分:4)
你有一个额外的零,因为该行应该是elif decimal < 16
而不是17
。
使用格式字符串 1 :
def rgb(r,g,b):
def hex1(d):
return '{:02X}'.format(0 if d < 0 else 255 if d > 255 else d)
return hex1(r)+hex1(g)+hex1(b)
print rgb(16,159,-137)
输出:
109F00
1 https://docs.python.org/2.7/library/string.html#format-specification-mini-language