Что не так с моим конвертером RGB в HEX - PullRequest
0 голосов
/ 02 мая 2020

Я просто пытаюсь создать простую программу конвертации RGB в HEX, но по какой-то причине она не работает, и я понятия не имею, почему. Я продолжаю сталкиваться с этой ошибкой: "remainder = c% 16 TypeError: неподдерживаемые типы операндов для%: 'NoneType' и '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)
...