def печать(
        текст, 
        красный=False, 
        зеленый=False, 
        синий=False, 
        желтый=False,
        стиль = None,
        не_печатать = False
): 
    def определить_стиль(стиль):
       
        if стиль == None:
         return ""

        СТИЛИ ={
            "ж":1,
            "к":3,
            "ч":4,
            "з":9,

        }

        # при комбинировании жирного и зачеркнутого дллжен получится результат
        # ;1;9
        # жирный и курсивный - ;1;3
        накопительная =""
        for буква in стиль:
            код_стиля = СТИЛИ.get(буква) 
            этот_стиль = f";{код_стиля}"
            накопительная += этот_стиль
                    
        
        
        return накопительная
    
    
    # определенные символы в начале и в конце написанны на C++ и отвечают за кодировку цвета 

    # первая часть строки задает стиль цвета и формат шрифта 
    # \x1B[ - специальный набор символов, который включает этот режим настройки 
    # 38:2; - говорит что следуйщие 3 параметра будут цветом в формате GRB 
    # 225;0;0 - формате rgb 
    # 4подчеркнутый стиль шрифта 
    # m - завершает настройку шрифта 
    # последняя часть строки сбрасывает стиль в стандарт, чтобы все дальнейшее писалось обычным цветом
    # результат = "\x1B[38;2;225;0;0;4m" + текст + "\x1B[0m"  

    готовый_стиль =определить_стиль(стиль)

    if красный:
        цвет = "255;0;0" 
    elif зеленый:
        цвет = "0;255;0" 
    elif синий:
        цвет = "0;0;255"
    elif желтый:
        цвет = "240;248;38"
    else:
        цвет = "255;255;255"
    
    
    результат = f"\x1B[38;2;{цвет}{готовый_стиль}m{текст}\x1B[0m" 
    if не_печатать:
        return результат
    print(результат) 
    
    
# если оставить строки запуском функций внутри файла с модулем, то они будут выполнены в МОМЕНТ ИМПОРТА этого модуля,чтобы этого не допустить, но при этом оставить возможность тестировать этот файл модуля "прямо здесь" например, чтобы провести его отладк, надо эти(ту) строку(и) убрать внутрь блока ЕСЛИ , который будет проверять откуда запущен этот  файл 

# ЕСЛИ файл произошел из этого файла (если он не импортируется) 
if __name__ == "__main__":

    печать("123", красный= True, стиль="жч")  

    красный = печать("красный", красный=True, не_печатать=True) 
    зеленый =печать("зеленый", зеленый=True,не_печатать=True) 
    разноцветная_строка = f"{красный} и {зеленый}" 
    print(разноцветная_строка)


