# -*- coding: utf-8 -*-

'''
Необходимо написать код, который будет превращать
привычный rgb формат в hex. И всё ;)

Пример:

assert rgb_to_hex(255, 255, 255) == "FFFFFF"
assert rgb_to_hex(255, 0, 255) == "FF00FF"
assert rgb_to_hex(14, 0, 128) == "0E0080"
assert rgb_to_hex(0, 0, 0) == "000000"
'''

def rgb_to_hex(*args: int) -> str:
    '''
    Переводит переданные аргументы args из десятичной
    системы в шестнадцатиричную склеивая их в одну строку.
    '''
    # Число переводится в шестнадцатиричную систему;
    # результат обрезается так, чтобы не вошли лишние символы;
    # далее, форматируется для корректного отображения;
    # результаты склиеваются в одну строку;
    # полученная строка переводится в верхний регистр.
    return ''.join(map(lambda x: f'{hex(x)[2:]:0>2}', args)) \
             .upper()

# Это хороший вариант решения предложенный автором источника
# где была найдена эта задача. 
# def rgb_to_hex(r, g, b):
#     txt = '{:02X}' * 3
#     return txt.format(r, g, b)



tests = (((255, 255, 255), "FFFFFF"),
         ((255, 0, 255),"FF00FF"),
         ((14, 0, 128), "0E0080"),
         ((0, 0, 0), "000000"))

for args, check in tests:
    print(rgb_to_hex(*args) == check)


514f6637b14801ca1cace0f75598e48f40b22667
<mask token>

<mask token>


def rgb_to_hex(*args: int) ->str:
    """
    Переводит переданные аргументы args из десятичной
    системы в шестнадцатиричную склеивая их в одну строку.
    """
    return ''.join(map(lambda x: f'{hex(x)[2:]:0>2}', args)).upper()


<mask token>

<mask token>


def rgb_to_hex(*args: int) ->str:
    """
    Переводит переданные аргументы args из десятичной
    системы в шестнадцатиричную склеивая их в одну строку.
    """
    return ''.join(map(lambda x: f'{hex(x)[2:]:0>2}', args)).upper()


<mask token>
for args, check in tests:
    print(rgb_to_hex(*args) == check)

<mask token>


def rgb_to_hex(*args: int) ->str:
    """
    Переводит переданные аргументы args из десятичной
    системы в шестнадцатиричную склеивая их в одну строку.
    """
    return ''.join(map(lambda x: f'{hex(x)[2:]:0>2}', args)).upper()


tests = ((255, 255, 255), 'FFFFFF'), ((255, 0, 255), 'FF00FF'), ((14, 0, 
    128), '0E0080'), ((0, 0, 0), '000000')
for args, check in tests:
    print(rgb_to_hex(*args) == check)

# -*- coding: utf-8 -*-

'''
Необходимо написать код, который будет превращать
привычный rgb формат в hex. И всё ;)

Пример:

assert rgb_to_hex(255, 255, 255) == "FFFFFF"
assert rgb_to_hex(255, 0, 255) == "FF00FF"
assert rgb_to_hex(14, 0, 128) == "0E0080"
assert rgb_to_hex(0, 0, 0) == "000000"
'''

def rgb_to_hex(*args: int) -> str:
    '''
    Переводит переданные аргументы args из десятичной
    системы в шестнадцатиричную склеивая их в одну строку.
    '''
    # Число переводится в шестнадцатиричную систему;
    # результат обрезается так, чтобы не вошли лишние символы;
    # далее, форматируется для корректного отображения;
    # результаты склиеваются в одну строку;
    # полученная строка переводится в верхний регистр.
    return ''.join(map(lambda x: f'{hex(x)[2:]:0>2}', args)) \
             .upper()

# Это хороший вариант решения предложенный автором источника
# где была найдена эта задача. 
# def rgb_to_hex(r, g, b):
#     txt = '{:02X}' * 3
#     return txt.format(r, g, b)



tests = (((255, 255, 255), "FFFFFF"),
         ((255, 0, 255),"FF00FF"),
         ((14, 0, 128), "0E0080"),
         ((0, 0, 0), "000000"))

for args, check in tests:
    print(rgb_to_hex(*args) == check)

