ANSI escape-коды позволяют менять цвет текста в терминале. Код цвета выводится перед текстом, а код сброса — после него.
Как использовать цвет
Сохрани коды в переменных и вставь их в f-строку:
RED = '\033[31m'
RESET = '\033[0m'
print(f'{RED}Красный текст{RESET}')
print('Обычный текст')
Последовательность \033 обозначает специальный символ Escape. После цветного текста всегда добавляй RESET, иначе следующий вывод тоже может остаться цветным.
Обычные цвета текста
| Цвет | Код Python |
|---|---|
| Чёрный | '\033[30m' |
| Красный | '\033[31m' |
| Зелёный | '\033[32m' |
| Жёлтый | '\033[33m' |
| Синий | '\033[34m' |
| Пурпурный | '\033[35m' |
| Голубой | '\033[36m' |
| Белый | '\033[37m' |
Отображение чёрного и белого зависит от темы терминала. Например, чёрный текст может быть плохо виден на тёмном фоне.
Яркие цвета текста
| Цвет | Код Python |
|---|---|
| Ярко-чёрный (серый) | '\033[90m' |
| Ярко-красный | '\033[91m' |
| Ярко-зелёный | '\033[92m' |
| Ярко-жёлтый | '\033[93m' |
| Ярко-синий | '\033[94m' |
| Ярко-пурпурный | '\033[95m' |
| Ярко-голубой | '\033[96m' |
| Ярко-белый | '\033[97m' |
Цвет фона
Для фона используются коды от 40 до 47:
| Цвет фона | Код Python |
|---|---|
| Чёрный | '\033[40m' |
| Красный | '\033[41m' |
| Зелёный | '\033[42m' |
| Жёлтый | '\033[43m' |
| Синий | '\033[44m' |
| Пурпурный | '\033[45m' |
| Голубой | '\033[46m' |
| Белый | '\033[47m' |
Сброс оформления
RESET = '\033[0m'
Этот код сбрасывает цвет текста, фон и другие стили. Размещай его сразу после окрашенного фрагмента:
GREEN = '\033[32m'
RESET = '\033[0m'
status = f'{GREEN}Системы готовы{RESET}'
print(status)
Очистка экрана для анимации
ANSI-коды умеют не только менять цвет. Последовательность \033[2J очищает экран, а \033[H возвращает курсор в левый верхний угол. Для нового кадра их удобно хранить вместе:
CLEAR = '\033[2J\033[H'
print(CLEAR, end='')
print('Новый кадр')
Параметр end='' не добавляет перенос строки после кода очистки, поэтому новый кадр начинается в верхней позиции.
Некоторые браузерные области вывода не поддерживают очистку экрана. Если код отображается как символы [2J и [H, проверь его написание, а затем уточни у ментора, поддерживает ли текущий терминал ANSI-последовательности.
Цветная многострочная строка
CYAN = '\033[96m'
RESET = '\033[0m'
rocket = fr"""{CYAN}
/\
/__\
{RESET}"""
print(rocket)
print('Цвет сброшен')
Префикс f подставляет значения переменных, а r сохраняет обратные слеши, написанные внутри рисунка.
Если цвет не появился
- Проверь, что используется обратный слеш
\, а не прямой/. - Проверь букву
mв конце кода:'\033[31m'. - Если виден текст
{RED}, добавьfперед открывающей кавычкой. - Если видны символы вроде
[31m, область вывода может не поддерживать ANSI-коды. - Цвета могут немного отличаться в разных терминалах и темах.
ANSI-коды отвечают только за оформление вывода. Не используй управляющие последовательности, полученные из непроверенного пользовательского ввода.
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!