Перейти к содержимому

Как задать цвет в python

  • автор:

Как задать цвет в 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()

Установка цвета в Tkinter и Python

Если нам даны отдельные коды 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

Выводить текст на консоли в разных цветах довольно удобно и практично, от создания причудливых сценариев сканирования до выделения различных типов сообщений журнала (отладочные, информационные, критические и т. Д.) в ваших программах. В данной статье вы узнаете, как печатать цветной текст на 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.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *