我的RGB转HEX转换器有什么问题?

问题描述 投票:0回答:1

我只是想做一个简单的RGB到HEX的转换程序,但由于某些原因,它不能工作,我不知道为什么。我一直遇到这个错误: "remaxinder = c % 16TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'"。

另外,如果我的程序还有什么问题,请告诉我。

def rgb(r, g, b):
    """
    purpose:
        convert a rgb value to its corresponding hex value
    Pre:
        :param r: an integer, if r<0, assume 0, if r>255, assume 255
        :param g: an integer, if g<0, assume 0, if g>255, assume 255
        :param b: an integer, if b<0, assume 0, if b>255, assume 255

    post:
         None
    :return:
        The Hex value for the rbg as a string
    """
    def rounder(c):
        if c < 0:
            c = 0
        elif c > 255:
            c = 255
        else:
            return c

    def rgb_helper(c):
        color = list()
        while c != 0:
            remainder = c % 16
            color.append(remainder)
            c = c//c
        return color

    def converter(color):
        for i in color:
            if i == 15:
                color[i] = "F"
            elif i == 14:
                color[i] = "E"
            elif i == 13:
                color[i] = "D"
            elif i == 12:
                color[i] = "C"
            elif i == 11:
                color[i] = "B"
            elif i == 10:
                color[i] = "A"
            else:
                color[i] = str(color[i])
        return color.reverse()

    r = rounder(r)
    g = rounder(g)
    b = rounder(b)

    red = rgb_helper(r)
    green = rgb_helper(g)
    blue = rgb_helper(b)

    r = converter(red)
    g = converter(green)
    b = converter(blue)

    rgb = r+g+b

    return "".join(rgb)
python hex rgb
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.