Найти в Дзене
IT Start | Python

Генератор случайных цветов на Python

В данной статье мы напишем простой, но полезный генератор случайных цветов на Python. Для генерации случайных чисел в Python используется стандартный модуль random, который не требует установки. Мы рассмотрим, как сгенерировать цвета в двух наиболее популярных форматах — RGB и HEX, а также покажем, как их можно визуализировать. Для работы со псевдослучайными числами, в Python используется стандартный модуль random. Он не требует установки, так как входит в стандартную библиотеку Python. Импортируем модуль: import random Цвета в компьютерной графике чаще всего задаются в формате RGB (Red, Green, Blue), где каждая компонента — число от 0 до 255. Создадим функцию random_rgb(), внутри которой будет производиться генерация случайных значений для каждой компоненты. Также добавим вызов функции и вывод результата её работы при помощи функции print(): import random def random_rgb():
r = random.randint(0, 255) # Красный
g = random.randint(0, 255) # Зелёный
b = random.randint(0, 255) # Синий
Оглавление
Генератор случайных цветов на Python
Генератор случайных цветов на Python

Как сгенерировать случайный цвет в Python?

В данной статье мы напишем простой, но полезный генератор случайных цветов на Python.

Для генерации случайных чисел в Python используется стандартный модуль random, который не требует установки. Мы рассмотрим, как сгенерировать цвета в двух наиболее популярных форматах — RGB и HEX, а также покажем, как их можно визуализировать.

Базовые представления цвета

  • RGB — три целых значения 0–255 (красный, зелёный, синий).
  • HEX — шестнадцатеричная запись #RRGGBB.
  • HSL — оттенок (0–360°), насыщенность и светлота (обычно 0–100%).

Импорт модулей

Для работы со псевдослучайными числами, в Python используется стандартный модуль random. Он не требует установки, так как входит в стандартную библиотеку Python. Импортируем модуль:

import random

Написание разных вариаций кода для генерации случайного цвета на Python

Генерация случайного RGB-цвета

Цвета в компьютерной графике чаще всего задаются в формате RGB (Red, Green, Blue), где каждая компонента — число от 0 до 255.

Создадим функцию random_rgb(), внутри которой будет производиться генерация случайных значений для каждой компоненты. Также добавим вызов функции и вывод результата её работы при помощи функции print():

import random

def random_rgb():
r = random.randint(0, 255) # Красный
g = random.randint(0, 255) # Зелёный
b = random.randint(0, 255) # Синий
return (r, g, b)

print(random_rgb())
# Пример вывода: (123, 45, 200)

Генерация случайного HEX-цвета

В веб-разработке чаще используется шестнадцатеричный формат (например, #7B2DC8).

Для генерации случайного HEX-цвета мы можем использовать те же случайные RGB-значения, а затем отформатировать их в строку. Также добавим вызов функции и вывод результата её работы при помощи функции print():

import random

def random_hex():
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
return "#{:02X}{:02X}{:02X}".format(r, g, b)

print(random_hex())
# Пример вывода: #3FA7D6

Универсальная функция для генерации случайного цвета

Чтобы сделать код более гибким, можно создать универсальную функцию random_color(), которая будет генерировать цвет в зависимости от выбранного формата — RGB или HEX:

import random

def random_color(mode="hex"):
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)

# Возвращаем цвет в формате RGB (кортеж из трёх чисел)
if mode == "rgb":
return (r, g, b)
# Возвращаем цвет в формате HEX (например: #3FA7D6)
elif mode == "hex":
return "#{:02X}{:02X}{:02X}".format(r, g, b)
# Если передан неизвестный режим — выбрасываем ошибку
else:
raise ValueError("Доступные режимы: 'rgb' или 'hex'")

print(random_color("rgb"))
print(random_color("hex"))

Визуализация цветов

Для наглядности можно отобразить несколько случайных цветов в виде палитры. Для этого воспользуемся библиотекой matplotlib. Для её установки можно перейти в терминал/командную строку и прописать:

pip install matplotlib

Далее импортируем из matplotlib модуль pyplot и добавим отображение цветов:

import random
import matplotlib.pyplot as plt

def random_color(mode="hex"):
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)

if mode == "rgb":
return (r, g, b)
elif mode == "hex":
return "#{:02X}{:02X}{:02X}".format(r, g, b)
else:
raise ValueError("Доступные режимы: 'rgb' или 'hex'")

# Генерируем список из 5 случайных цветов в формате HEX
colors = [random_color("hex") for _ in range(5)]

# Создаём холст для отображения палитры
plt.figure(figsize=(8, 2))

# Рисуем прямоугольные блоки с цветами
for i, c in enumerate(colors):
plt.fill_between([i, i+1], 0, 1, color=c)

# Убираем оси для красоты
plt.axis("off")

# Отображаем результат
plt.show()

Пример визуализации случайных цветов

     Пример визуализации случайных цветов Admin
Пример визуализации случайных цветов Admin

Бонус (генерация случайных цветов в одну строку на Python)

В качестве бонуса покажу, как можно реализовать генерацию случайного цвета в одну строку:

import random

# Генерируем случайное число от 0 до 16777215 (FFFFFF в HEX)
# и форматируем его в строку из 6 символов, дополняя нулями
print(f'#{random.randint(0, 0xFFFFFF):06x}')
# Пример вывода: #e2c4a3

Заключение

В статье мы рассмотрели, как сгенерировать случайный цвет в Python:

  • написали функцию для RGB и HEX форматов,
  • создали универсальный вариант,
  • визуализировали результат с помощью matplotlib.

Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Мой Telegram канал по Python

Мой YouTube канал

Курс по Python (50 видоуроков + дополнительные уроки)

Курс по созданию телеграм-ботов на Python с фреймворком Aiogram

Курс по созданию GUI на Python