from random import randint

def печатать(текст, стиль="", красный=False, фиолетовый=False, зеленый=False, оранжевый=False, голубой=False, желтый=False, не_печатать=False, рандомный=False):
    def определить_стиль(стиль: str):
        стиль = стиль.lower()
        результат = ""
        if "ж" in стиль:
            результат += ";1"
        elif "к" in стиль:
            результат += ";3"
        elif "ч" in стиль:
            результат += ";4"
        elif "з" in стиль:
            результат += ";9"
        return результат
    
    итоговый_стиль = определить_стиль(стиль)
    if красный:
        цвет = "225;0;0" 
    elif фиолетовый:
        цвет = "0;0;255"
    elif зеленый:
        цвет = "0;128;0"
    elif оранжевый:
        цвет = "255;127;0"
    elif голубой:
        цвет = "28;170;214"
    elif желтый:
        цвет = "255;255;0"

    elif рандомный:
        результат = ""
        for буква in текст:
            к = randint(0,225)
            з = randint(0, 225)
            с = randint(0,225)
            результат += f"\x1B[38;2;{к};{з};{с}{итоговый_стиль}m{буква}"
        результат += "\x1B[0m"
        print(результат)
        return

    else:
        цвет = "255;255;255"
    результат = f"\x1B[38;2;{цвет}{итоговый_стиль}m{текст}\x1B[0m"
    if не_печатать:
        return результат
    print(результат)
    # \x1B - особый символ, который включает режим друого цвета
    # 38;2; - говорит о том, что следующие 3 команды будут в формате RGB
    # ;1 - особый стиль (в данном случае жирный)
    # \x1B[0m - всё, что будет написано после этого символа будет стндартным цветом. Еси не будет этой строчки, все последующие print будут писаться одним и тем же цветом


if __name__ == "__main__":
    красный = печатать("Красный текст", красный=True, не_печатать=True)
    зелёный = печатать("зелёный текст", зеленый=True, не_печатать=True)
    print(f"{красный} и {зелёный} в одной строчке")