Цель этого блога — научить и объяснить вопросы алгоритма Python как новым, так и опытным разработчикам программного обеспечения Python.

Привет! Я новичок в программировании, и моя цель — убедиться, что мои читатели понимают различные алгоритмы/проблемы Python, которые я решаю. Не стесняйтесь заглянуть в мой инстаграм @newbieprogrammer_ и обязательно подпишитесь на меня там. Вы также можете проверить мой github для всего исходного кода @newbieprogrammer.

Для сегодняшней задачи мы будем решать задачу алгоритма кодовых войн: преобразование rgb в hex. Прежде чем я продолжу, я хотел бы сказать, что есть несколько способов решить эту проблему, как и программирование. Это решение, которое я нашел наиболее удобным для начинающих, в отличие от других решений, использующих лямбда-выражения. Теперь, когда это не так, давайте начнем.

ВОПРОС:

Функция rgb неполная. Завершите его, чтобы передача десятичных значений RGB приводила к возврату шестнадцатеричного представления. Допустимые десятичные значения для RGB: 0–255. Любые значения, выпадающие из этого диапазона, должны быть округлены до ближайшего допустимого значения.

Примечание. Ваш ответ всегда должен состоять из 6 символов, сокращение с 3 здесь не сработает.

Ниже приведены примеры ожидаемых выходных значений:

rgb(255, 255, 255) # returns FFFFFF
rgb(255, 255, 300) # returns FFFFFF
rgb(0,0,0) # returns 000000
rgb(148, 0, 211) # returns 9400D3
  1. СОЗДАТЬ ФУНКЦИЮ:

Очевидно, что для решения любой проблемы, связанной с кодированием/программированием/написанием алгоритмов, нам нужно либо создать функцию, либо класс. Для этой задачи мы назовем нашу функцию «rgb», которая принимает три значения r, g и b:

2. СОЗДАЙТЕ ВСПОМОГАТЕЛЬНУЮ ФУНКЦИЮ:

Теперь внутри функции «rgb» мы создадим «вспомогательную» функцию, которая принимает единственное значение ( c ), и проверим, находятся ли числа в пределах ограничений, и мы собираемся передать значения в функцию для проверки. если они находятся в пределах ограничений:

3. ПРЕОБРАЗОВАТЬ ЗНАЧЕНИЯ В ШЕСТНАДЦАТЕРИЧНЫЙ:

%02x%02x%02x кодирует цветовую тройку как строку RGB, такую ​​как «aaffee», где каждые 2 символа представляют собой один цветовой канал в шестнадцатеричном формате с использованием форматирования строки. %x означает "шестнадцатеричный", 02 означает ширину поля, равную двум, дополненным слева нулями. Затем мы возвращаем значение в верхнем регистре, вызывая метод .upper().

Спасибо, что нашли время, чтобы прочитать этот пост. Я буду периодически публиковать больше решений для нескольких вопросов по алгоритмам / программированию, от кодовых войн до хакерранка. Не забудьте заглянуть в мой инстаграм @newbieprogrammer_