Цель этого блога — научить и объяснить вопросы алгоритма 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
- СОЗДАТЬ ФУНКЦИЮ:
Очевидно, что для решения любой проблемы, связанной с кодированием/программированием/написанием алгоритмов, нам нужно либо создать функцию, либо класс. Для этой задачи мы назовем нашу функцию «rgb», которая принимает три значения r, g и b:
2. СОЗДАЙТЕ ВСПОМОГАТЕЛЬНУЮ ФУНКЦИЮ:
Теперь внутри функции «rgb» мы создадим «вспомогательную» функцию, которая принимает единственное значение ( c ), и проверим, находятся ли числа в пределах ограничений, и мы собираемся передать значения в функцию для проверки. если они находятся в пределах ограничений:
3. ПРЕОБРАЗОВАТЬ ЗНАЧЕНИЯ В ШЕСТНАДЦАТЕРИЧНЫЙ:
%02x%02x%02x
кодирует цветовую тройку как строку RGB, такую как «aaffee», где каждые 2 символа представляют собой один цветовой канал в шестнадцатеричном формате с использованием форматирования строки. %x
означает "шестнадцатеричный", 02
означает ширину поля, равную двум, дополненным слева нулями. Затем мы возвращаем значение в верхнем регистре, вызывая метод .upper().
Спасибо, что нашли время, чтобы прочитать этот пост. Я буду периодически публиковать больше решений для нескольких вопросов по алгоритмам / программированию, от кодовых войн до хакерранка. Не забудьте заглянуть в мой инстаграм @newbieprogrammer_