美文网首页
Python终端打印彩色字

Python终端打印彩色字

作者: 大龙10 | 来源:发表于2023-11-25 16:30 被阅读0次

    一、ANSI 转义序列

    • ANSI 转义序列是一种用于在控制台中输出格式化文本的标准。
      它由一系列以 ESC(ASCII 码 27)开头的字符组成,后跟一个或多个参数和一个字母,以指示需要执行的操作。
      ANSI 转义序列最初是为了在终端上输出彩色文本而设计的,但它们也可以用于设置文本样式、移动光标等。

    二、格式

    \033[<parameter1>;<parameter2>...<parameterN><letter>

    • 其中,\033 表示 ESC,<parameter1>、<parameter2> 等表示参数,<letter> 表示指令字母。
    • 不同的指令字母代表了不同的操作,如下表所示:
    \color{red}{字母} \color{red}{操作}
    m 设置文本属性
    H 设置光标位置
    J 清除屏幕
    K 清除行
    s 保存光标位置
    u 恢复光标位置
    • 在参数中,分号用于分隔不同的参数。
    • 常见的参数包括:
    \color{red}{参数} \color{red}{意义}
    0 关闭所有属性
    1 设置粗体
    2 设置弱化(半亮)
    3 设置斜体
    4 下划线
    5 闪烁(慎用)
    7 反显
    8 消隐
    30-37 设置前景色
    40-47 设置背景色
    • 例如,要将文本颜色设置为红色,我们可以使用以下 ANSI 转义序列:
      print("\033[36m", "Hello!","\033[0m")
    • 16色指令基本格式:
      "\033[0;文本颜色;背景色m 要打印的文字 \033[0m"
      \033 是 Escape 键的 ASCII 值(8进制),也可以写成 \x1b(16进制),
      后面的 \033[0m 是用来恢复终端默认颜色,
      例如:print("\033[0;31;42m 要打印的文字 \033[0m")
      打印出来是绿底红字。
    • 256色指令


    三、程序

    import os
    os.system('' )
    def colors_16(color):
        return("\033[2;{num}m {num} \033[0m".format(num=str(color)))
    
    
    def colors_256(color):
        num1 = str(color)                 # 颜色码,用来控制前景颜色
        num2 = str(color).ljust(3,' ')   #  用来显示颜色对应数字
        if color % 16 == 0:               # 每行打印16个颜色
            return(f" \033[38;5;{num1}m {num2} \033[0m \n")
        else:
            return( f" \033[38;5;{num1}m {num2} \033[0m")
    
    print("16 色颜色代码:",)
    print(''.join([colors_16(x) for x in range(30,38)]))
    
    print("\n256 色颜色代码:")
    print(''.join([colors_256(x) for x in range(256)]))
    
    input("\n按回车键退出.")
    
    
    运行结果

    相关文章

      网友评论

          本文标题:Python终端打印彩色字

          本文链接:https://www.haomeiwen.com/subject/qvuvwdtx.html