Как задать цвет в python
8. Как задать случайный цвет в turtle

9. Прыгающий мячик Bounce ball

10. Много прыгающих мячиков

11. Мяч и сила притяжения

12. Много мячиков и сила притяжения

13. Ускоряем анимацию при помощи функции tracer

14. Создаем игру Пинг-Понг на Python. Часть 1

15. Создаем игру Пинг-Понг на Python. Часть 2

16. Создаем игру Пинг-Понг на Python. Часть 3
Как задать случайный цвет в turtle
Случайный цвет мы может получать из заранее созданного списка, в котором хранятся названия цветов. При помощи функции choice из модуля random мы можем получить один элемент этого списка случайный образом.
Ниже представлен код, который каждую секунду меняет цвет экрана, а выбор цвета осуществляется случайным образом из списка colors
import turtle, random, time colors = ['red', 'green', 'yellow', 'purple', 'orange'] window = turtle.Screen() while True: window.bgcolor(random.choice(colors)) time.sleep(1) window.mainloop()
Но при такой реализации наш выбор цветов ограничен количеством элементов списка colors.
Другой способ задать случайный цвет, это передавать 3 величины в пределах от 0 до 1 в функцию bgcolor. Первая величина обозначает красный цвет, вторая — зеленый и третья — синий. Таким образом мы пользуемся моделью RGB(red green blue). Ниже программа, которая случайным образом задает цвет фона экрана.
import turtle, random, time window = turtle.Screen() while True: red = random.random() green = random.random() blue = random.random() window.bgcolor(red, green, blue) time.sleep(1) window.mainloop()
Как задать цвет в python
Ряд виджетов в Tkinter поддерживают установку цвета для различных аспектов. Например, у виджета Label можно установить параметры foreground и background , которые отвечают за цвет текста и фона соответственно. У некоторых виджетов настройки цвета спрятаны в параметре style.
Цвет можно установить разными способами:
-
Именнованные цвета, например, «red», который соответствует красному цвету. В зависимости от платформы набор доступных именнованных цветов может отличаться. Все доступные именнованные цвета можно посмотреть в документации. Например:
ttk.Label(text="Hello World", foreground="red")
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") label = ttk.Label(text="Hello World", padding=8, foreground="#01579B", background="#B3E5FC") label.pack(anchor=CENTER, expand=1) root.mainloop()
Если нам даны отдельные коды RGB-составляющих, то их можно сконвертировать в шестнадцатеричный код цвета:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") def get_rgb(rgb): return "#%02x%02x%02x" % rgb label = ttk.Label(text="Hello World", padding=8, foreground=get_rgb((0, 77, 64)), background=get_rgb((128, 203, 196))) label.pack(anchor=CENTER, expand=1) root.mainloop()
Здесь функция get_rgb в качестве параметра получает кортеж из трех составляющих цвет RGB и с помощью форматирования строки переводит значения кортежа в шестнадцатеричный код
Цветной вывод текста в Python
Python обладает достаточным количеством инструментов, чтобы выводить текст в консоль в любом цвете. Такой вывод не требует особых навыков, реализуется в несколько строк кода и используется как для выделения важной информации, так и для придания красоты тексту.
Сделать текст цветным можно двумя способами: использовать встроенные средства языка или библиотеки. Каждый способ имеет плюсы и минусы, также существуют нюансы, касающиеся изменения цвета текста в консоли Windows.
C помощью встроенных средств языка
В Python можно форматировать текст с помощью ANSI кодов. Это очень мощный и удобный инструмент, с его помощью программист может напрямую определять цвет текста.
ANSI коды работают на большинстве дистрибутивов Linux, но не поддерживаются консолью операционной системы Windows до Windows 10. В статье есть отдельный пункт про то, как запускать на Windows!
На разных дистрибутивах Linux и в Windows 10 цвет текста, созданный при помощи одного и того же ANSI кода, может отличаться. Это зависит от настроек консоли, её кастомизации пользователем и некоторых других факторов.
Изменять цвет текста с помощью ANSI кодов можно разными способами, например, использоваться функции или даже написать свой класс-обёртку для ANSI.
Использовать ANSI коды просто, для этого нужно знать базовый синтаксис и сами коды. Разбор на примере кода «\033[31m\033[43m»:
- \033 — обозначение того, что дальше идет какой-то управляющий цветом код;
- [31m — цвет текста (красный);
- [43m — цвет фона (жёлтый).
После вывода этого в консоль, далее выводимая информация будет красного цвета на жёлтом фоне. Сбросить к начальным значениям : \033[0m .
Базовые коды:
- \033[0-7m — это различные эффекты, такие как подчеркивание, мигание, жирность и так далее;
- \033[30-37m — коды, определяющие цвет текста (черный, красный, зелёный, жёлтый, синий, фиолетовый, сине-голубой, серый);
- \033[40-47m — коды, определяющие цвет фона.
Цвета
| Цвет | Текст | Фон |
| Чёрный | 30 | 40 |
| Красный | 31 | 41 |
| Зелёный | 32 | 42 |
| Жёлтый | 33 | 43 |
| Синий | 34 | 44 |
| Фиолетовый | 35 | 45 |
| Бирюзовый | 36 | 46 |
| Белый | 37 | 47 |
Эффекты
| Код | Значение |
| 0 | Сброс к начальным значениям |
| 1 | Жирный |
| 2 | Блёклый |
| 3 | Курсив |
| 4 | Подчёркнутый |
| 5 | Редкое мигание |
| 6 | Частое мигание |
| 7 | Смена цвета фона с цветом текста |
Функции для вызова
Быстро покрасить строку в нужный цвет можно с помощью функций. Им нужно дать говорящие имена, передать в качестве аргумента строку и использовать в их теле правильный ANSI код.
Подход удобен тем, что можно объявить N функций, которые форматируют любой текст в нужный цвет и использовать их во всех своих программах, достаточно лишь импортировать модуль.
def out_red(text): print("\033[31m <>" .format(text)) def out_yellow(text): print("\033[33m <>" .format(text)) def out_blue(text): print("\033[34m <>" .format(text)) out_red("Вывод красным цветом") out_yellow("Текст жёлтого цвета") out_blue("Синий текст")

Мы меняли только цвет текста, но можно менять и цвет фона, добавлять дополнительные стили. Например, чтобы вывести подчёркнутый текст белого цвета на синем фоне, нужно написать так:
print("\033[4m\033[37m\033[44m<>\033[0m".format("Python 3"))
Вот так будет выглядеть вывод:

Обратите внимание на строку print(«\033[4m\033[37m\033[44m<>\033[0m».format(«Python 3»)) .
Здесь мы вывод осуществляли следующим образом:
- \033[4m — подчёркнутый;
- \033[37m — белая надпись;
- \033[44m — синий фон;
- <> — заменится на «Python 3»;
- \033[0m — сброс к начальным значениям.
Как вывести цветной текст в консоль на Windows
В Linux по умолчанию встроена поддержка ANSI кодов консолью, а в Windows — нет. Это объясняется тем, что для линукса консоль является основным рабочим инструментом. В Windows консоль используется редко, поэтому нет смысла встраивать в неё подобные вещи.
Однако в Windows 10, начиная с версии Threshold 2, разработчики добавили в консоль поддержку управляющих кодов. Однако из-за того, что далеко не все пользуются новой ОС, писать консольные приложения с цветным текстом все ещё приходится с помощью дополнительных библиотек.
Так библиотека colorama поддерживает работу с Windows 10! Поэтому рекомендуется её использование.
Для того, чтобы код, написанный с помощью внутренних средств Python 3 или с помощью библиотеки termcolor заработал в Windows 10, надо включить поддержку ANSI для stdout в запущенной консоле.
Сделать это можно следующим образом:
import ctypes kernel32 = ctypes.windll.kernel32 kernel32.SetConsoleMode(kernel32.GetStdHandle(-11), 7)
Вывод цветного текста в консоль с colorama
Colorama — самая популярная библиотека для вывода цветного текста на Python 3. Colorama позволяет использовать ANSI коды не только в Linux, но и в Windows.
Использование функций и методов библиотеки упрощает написание кода и делает более простым для поддержки. Больше не нужно запоминать или копировать ANSI коды. Команды настолько просты и интуитивно понятны, что с задачей справиться даже обычный пользователь.
Использование сторонней библиотеки, такой как colorama, не приводит к каким-то негативным эффектам. Перед использованием библиотеки colorama, её следует установить с помощью команды в консоле pip install colorama .
Приведём пример использования colorama:
import colorama from colorama import Fore, Back, Style colorama.init() print(Fore.RED + 'Красный текст') print(Back.BLUE + 'Синий фон') print(Style.RESET_ALL) print('Снова обычный текст')
Здесь мы импортировали модули для работы с текстом и фоном. И так же как и раньше мы выводили всё встроенными средствами Python, вывели всё в консоль.
Стоит обратить внимание на функцию init. Если её забыть запустить, то не будет поддерживаться вывод на Windows 10.
Только теперь нам не надо писать \033[44m, а достаточно написать Fore.BLUE, что конечно же удобно. Style.RESET_ALL — это сброс цветов консоли к начальным значениям.

Цветной текст с помощью termcolor
Эта библиотека даёт программисту исчерпывающий инструментарий для работы с цветом текста.
Часто termcolor используют вместе с colorama. Termcolor используют непосредственно для написания кода, действительно, её синтаксис более удобный и простой.
Для установки библиотеки termcolor следует выполнить в консоле команду pip install termcolor .
from termcolor import colored, cprint print(colored('Привет мир!', 'red', attrs=['underline'])) print('Привет, я люблю тебя!') cprint('Вывод с помощью cprint', 'green', 'on_blue')
Здесь мы воспользовались функциями colored и cprint. Первая позволяет создать строку для последующего вывода с необходимыми параметрами цветов и эффектов. Вторая сразу производит вывод в консоль.

Заключение
Если мы делаем пару функций для вывода в консоль цветных сообщений об ошибках и предупреждениях, то можно их сделать и не подключая библиотек. Правда при подключении библиотеки код более читаемым становится.
При выборе между библиотеками colorama и termcolor, я бы остановился бы на colorama. Не только исходя из её большей популярности, но и из-за того, что она поддерживает работу с командной строкой Windows 10. Хотя cprint удобная функция в termcolor.
Как изменить цвет текста в Python

Выводить текст на консоли в разных цветах довольно удобно и практично, от создания причудливых сценариев сканирования до выделения различных типов сообщений журнала (отладочные, информационные, критические и т. Д.) в ваших программах. В данной статье вы узнаете, как печатать цветной текст на Python с помощью библиотеки colorama.
Для работы нам требуется установить библиотеку:
>>>pip install colorama
Мы можем установить нужную библиотеку как глобально, так и в изолированную папку — виртуальную среду. Для простоты мы используем первый вариант, хотя рекомендуется использовать второй.
Далее создадим простой Python файл:
from colorama import init, Fore, Back, Style
»’
мы вызываем функцию init(), которая необходима в среде Windows для правильной работы colorama, на других платформах она ничего не делает, поэтому вы можете удалить ее.
»’
Далее определяем все доступные цвета переднего плана в списке «FOREGROUND» и цвета фона в списке «BACKGROUND», мы также определяем список BRIGHTNESS для различных настроек яркости.
# список доступных фронтальных цветов
FOREGROUND = [ Fore.BLACK, Fore.RED, Fore.GREEN, Fore.YELLOW, Fore.BLUE, Fore.MAGENTA, Fore.CYAN, Fore.WHITE ]
# список доступных фоновых цветов
BACKGROUND = [ Back.BLACK, Back.RED, Back.GREEN, Back.YELLOW, Back.BLUE, Back.MAGENTA, Back.CYAN, Back.WHITE ]
BRIGHTNESS = [ Style.DIM, Style.NORMAL, Style.BRIGHT ]
»’
Далее давайте создадим функцию, которая обертывает обычную функцию print() Python, но с возможностью установки цвета и яркости
»’
def print_with_color(s, color=Fore.WHITE, brightness=Style.NORMAL, **kwargs):
«»»Служебная функция, обертывающая обычную функцию «печать()»
, но с цветами и яркостью»»»
print(f»», **kwargs)
Мы просто используем print() внутри, но дополняем текст яркостью и цветовыми кодами, а также добавляем Style.RESET_ALL в конце, чтобы сбросить цвет и яркость по умолчанию каждый раз, когда мы используем функцию.
Мы также передаем **kwargs, чтобы мы могли использовать другие ключевые аргументы функции print(), такие как end и sep.
Теперь, когда у нас есть наша функция, давайте использовать все цвета переднего плана и напечатаем один и тот же текст разными цветами и каждый с разной яркостью:
for fore in FOREGROUND:
for brightness in BRIGHTNESS:
print_with_color(«Myrusakov!», color=fore, brightness=brightness)

При этом черный цвет не будет виден на экране.
Теперь используем фоновые цвета:
for fore in FOREGROUND:
for back in BACKGROUND:
for brightness in BRIGHTNESS:
print_with_color(«Myrusakov», color=back+fore, brightness=brightness, end=’ ‘)
print()

Теперь вы знаете все доступные цвета переднего плана и фона, а также значения яркости в библиотеке colorama на Python.

![]()
Создано 28.12.2021 13:58:02
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.
