【python解题笔记20210318】CodeWars:RGB To Hex Conversion

题目

内容:输入RGB数字(有效范围0~255),将其转换成十六进制的结果

链接:https://www.codewars.com/kata/513e08acc600c94f01000001/train/python

截图:

 

    

解题

思路: 

1、将范围外的输入,转成0或者255

2、将十进制整数rgb转换十六进制+转成字符串+去掉前缀0x+将小写转换成大写

3、如果得到的结果只有1位数,则前面补0

 

结果:

 

 

 

 

 

   

源码:

def rgb(r, g, b):
    """
    输入RGB数字(有效范围0~255),将其转换成十六进制的结果
    :param r: red参数
    :param g: green参数
    :param b: blue参数
    :return: RGB拼接后的十六进制字符串
    """
    #将范围外的输入,转成0或者255
    if r<0:
        r=0
        pass
    elif r>255:
        r=255
        pass
    if g<0:
        g=0
        pass
    elif g>255:
        g=255
        pass
    if b<0:
        b=0
        pass
    elif b > 255:
        b = 255
        pass
    #将十进制整数rgb转换十六进制+转成字符串+去掉前缀0x+将小写转换成大写
    r = str(hex(r))[2:].upper()
    g = str(hex(g))[2:].upper()
    b = str(hex(b))[2:].upper()
    #如果得到的结果只有1位数,则前面补0
    if len(r)==1:
        r='0'+r
        pass
    if len(g)==1:
        g='0'+g
        pass
    if len(b)==1:
        b='0'+b
        pass
    #返回拼接的RGB十六进制字符串
    return r+g+b

 

知识点

1、hex()函数将十进制转成十六进制。

2、str()函数将数字转成字符串。

3、str[num1:num2]可以做字符串截取,去掉前面的num1位,以及后面的num2位。

4、upper()函数将小写转成大写字母,如果传入数字也不会报错。

 

 

参考资料:

https://blog.csdn.net/qq_34783484/article/details/97654167

https://jingyan.baidu.com/article/8cdccae9bded64705413cdd8.html

posted @ 2021-03-31 09:50  chooperman  阅读(123)  评论(0编辑  收藏  举报