Color RGB o hexadecimal

RGB es un modelo de color que define el color mediante la combinación de rojo, verde y azul. Una tupla RGB está compuesta por tres números que especifican la intensidad de cada color. Como utiliza 8 bits (0 o 1) para cada color, cada intensidad puede transformarse en un número hexadecimal de como máximo dos dígitos.

Hay 256 tonos posibles para cada color, ya que "11111111" (o el hexadecimal "ff") corresponde al 255 decimal, además del número 000. La combinación de los 256 tonos posibles para los tres colores primarios da como resultado 256 elevado al cubo, es decir, más de 16 millones de colores posibles.

Escribe una función que reciba un color en RGB o hexadecimal y devuelva el formato opuesto. Si recibe los tres enteros en una tupla RGB, debe devolver una cadena con la notación hexadecimal equivalente, precedida por un signo de almohadilla (#). Si recibe una cadena en hexadecimal, debe devolver una tupla con los tres enteros correspondientes al RGB.

Ejemplos

rgb_or_hex(150, 50, 76) ➞ "#96324c"
# 150 is hex 96, 50 is hex 32 and 76 is hex 4c.

rgb_or_hex("#303749") ➞ (48, 55, 73)
# 30 is dec 48, 37 is dec 55 and 49 is dec 73.

rgb_or_hex(170, 14, 0) ➞ "#aa0e00"
# 170 is hex aa, 14 is hex e and 0 is hex 0.

Notas

  • Recuerda que los tres colores deben ser números hexadecimales de dos dígitos, por lo que para el valor 14 de verde, el valor hexadecimal debe ser 0e en lugar de solo e.
  • Intenta usar métodos de formato o de relleno para minimizar las sentencias condicionales.

Curiosidades

El negro se define como la ausencia de color, o RGB(0,0,0), mientras que el blanco se define como todos los colores a máxima intensidad, o RGB(255,255,255). Cuando todos los colores tienen la misma intensidad y algún valor entre 0 y 255, el color resultante es un gris más oscuro o más claro.