Python 在终端里彩色打印

Python 在终端彩色打印

flyfish

示例

cpp 复制代码
# 定义变量
name = "张三"
age = 20

# ======================
# 1. 基础用法:红色字体 + format格式化
# 颜色码 \033[31m 包在最前面,重置码 \033[0m 包在最后面
# ======================
print("\033[31m姓名:{},年龄:{}\033[0m".format(name, age))

# ======================
# 2. 多颜色演示
# ======================
# 绿色字体
print("\033[32m姓名:{},年龄:{}\033[0m".format(name, age))
# 黄色字体
print("\033[33m姓名:{},年龄:{}\033[0m".format(name, age))
# 蓝色字体
print("\033[34m姓名:{},年龄:{}\033[0m".format(name, age))

# ======================
# 3. 进阶:粗体彩色 + format格式化
# ======================
print("\033[1;31m姓名:{},年龄:{}\033[0m".format(name, age))

ANSI 终端颜色固定格式

复制代码
\033[样式;前景色;背景色m  文字  \033[0m

\033[:颜色开始标记
0:默认样式 / 1:粗体高亮
30-37字体颜色(前景色)
40-47背景颜色
m:颜色参数结束
\033[0m重置颜色(必须加,否则后续文字全变色)

2. 颜色数字对照表

前景色 fg(30~37) :30黑、31红、32绿、33黄、34蓝、35紫、36青、37白
背景色 bg(40~47):40黑、41红、42绿、43黄、44蓝、45紫、46青、47白

示例

cpp 复制代码
# 彩色打印函数(支持 format 格式化)
def color_print(text, *args, color="red"):
    color_dict = {
        "red": "\033[31m",
        "green": "\033[32m",
        "yellow": "\033[33m",
        "blue": "\033[34m"
    }
    # 格式化 + 染色
    print(f"{color_dict[color]}{text.format(*args)}\033[0m")

# 调用示例
name = "李四"
age = 22
color_print("姓名:{},年龄:{}", name, age, color="green")
color_print("姓名:{},年龄:{}", name, age, color="red")

示例

cpp 复制代码
# -*- coding: utf-8 -*-
# Python 彩色打印 + 文字右移缩进 教程

def print_color_demo():
    # ==============================================
    # 方法1:直接加空格(最简单,想右移多少加多少空格)
    # ==============================================
    print("="*50)
    print("方法1:空格缩进(文字右移)")
    print("="*50)
    # 右移4个空格
    print("\033[31m    红色文字(右移4格)\033[0m")
    # 右移8个空格
    print("\033[32m        绿色文字(右移8格)\033[0m")
    # 右移12个空格
    print("\033[33m            黄色文字(右移12格)\033[0m")

    # ==============================================
    # 方法2:制表符 \t (快速右移,1个\t=4~8格)
    # ==============================================
    print("\n" + "="*50)
    print("方法2:制表符 \\t 缩进")
    print("="*50)
    # 1个制表符
    print("\033[34m\t蓝色文字(\\t 右移)\033[0m")
    # 2个制表符
    print("\033[35m\t\t紫色文字(\\t\\t 右移)\033[0m")

    # ==============================================
    # 方法3:格式化固定缩进(推荐,整齐规范)
    # ==============================================
    print("\n" + "="*50)
    print("方法3:格式化固定缩进")
    print("="*50)
    # 总长度20,左补空格(文字靠右)
    print(f"\033[36m{'青色文字':>20}\033[0m")
    # 总长度25,左补空格
    print(f"\033[91m{'红色加粗文字':>25}\033[0m")

    # ==============================================
    # 封装彩色函数 + 缩进(最实用)
    # ==============================================
    print("\n" + "="*50)
    print("封装函数 + 缩进用法")
    print("="*50)

def print_color(text, color, indent=0):
    """
    彩色打印 + 自定义右移缩进
    :param text: 打印文字
    :param color: 颜色 red/green/yellow/blue
    :param indent: 右移空格数,默认0
    """
    color_dict = {
        "red": "\033[31m",
        "green": "\033[32m",
        "yellow": "\033[33m",
        "blue": "\033[34m"
    }
    # 文字前加指定数量的空格
    indent_text = " " * indent + text
    print(f"{color_dict[color]}{indent_text}\033[0m")

# 调用:文字右移10个空格,红色
print_color("操作成功", "green", indent=10)
# 文字右移15个空格,红色
print_color("系统错误", "red", indent=15)
# 文字右移5个空格,黄色
print_color("警告提示", "yellow", indent=5)

if __name__ == "__main__":
    print_color_demo()
cpp 复制代码
# 彩色打印 函数
color_print = lambda s, f, b: print(f"\033[{s};{f};{b}m {s};{f};{b}\033[0m", end=" ")


for style in [0, 1]:
    for fg in range(30, 38):
        for bg in range(40, 48):
            color_print(style, fg, bg)  # 调用 lambda
        print()
    print()
  1. 两张完整的终端颜色表
  2. 第一张:正常文字(style=0),8行字体色 × 8列背景色
  3. 第二张:粗体文字(style=1),8行字体色 × 8列背景色
  4. 每个格子里的数字(如 0;31;42)就是直接可用的颜色代码
cpp 复制代码
# 第一层循环:遍历 文字样式(2种:正常 / 粗体)
for style in [0, 1]:
    # 第二层循环:遍历 前景色(字体颜色) 30~37,一共8种颜色
    for fg in range(30, 38):
        # 第三层循环:遍历 背景色 40~47,一共8种颜色
        for bg in range(40, 48):
            # 拼接 ANSI 颜色代码:格式 = 样式;前景色;背景色

示例

cpp 复制代码
# 定义颜色函数
prBlack     = lambda s: print("\033[30m {}\033[00m".format(s))
prRed       = lambda s: print("\033[31m {}\033[00m".format(s))
prGreen     = lambda s: print("\033[32m {}\033[00m".format(s))
prYellow    = lambda s: print("\033[33m {}\033[00m".format(s))
prBlue      = lambda s: print("\033[34m {}\033[00m".format(s))
prPurple    = lambda s: print("\033[35m {}\033[00m".format(s))
prCyan      = lambda s: print("\033[36m {}\033[00m".format(s))
prWhite     = lambda s: print("\033[37m {}\033[00m".format(s))

prLightGray    = lambda s: print("\033[90m {}\033[00m".format(s))
prLightRed     = lambda s: print("\033[91m {}\033[00m".format(s))
prLightGreen   = lambda s: print("\033[92m {}\033[00m".format(s))
prLightYellow  = lambda s: print("\033[93m {}\033[00m".format(s))
prLightBlue    = lambda s: print("\033[94m {}\033[00m".format(s))
prLightPurple  = lambda s: print("\033[95m {}\033[00m".format(s))
prLightCyan    = lambda s: print("\033[96m {}\033[00m".format(s))
prLightWhite   = lambda s: print("\033[97m {}\033[00m".format(s))

# 调用方式
prCyan("Hello World, ")
prYellow("It's")
prGreen("ok")
相关推荐
NotFound4862 小时前
CSS如何利用Flex实现悬浮的侧边按钮组_利用fixed定位与flex布局组合
jvm·数据库·python
qq_189807032 小时前
Golang怎么实现RBAC权限控制_Golang如何用casbin实现基于角色的访问控制系统【教程】
jvm·数据库·python
vegetablec2 小时前
CSS如何处理相对定位留下的原本占位空白_认识到相对定位不会脱离文档流,需借助负margin消除视觉空隙
jvm·数据库·python
2401_832635582 小时前
HTML怎么创建响应式图片备选方案_HTML srcset与sizes结构【详解】
jvm·数据库·python
Rsun045512 小时前
3、Java 工厂方法模式从入门到实战
java·开发语言·工厂方法模式
wjs20242 小时前
C++ 基本的输入输出
开发语言
2301_764150562 小时前
Pandas GroupBy:将分组数据聚合为列表并赋值到新列
jvm·数据库·python
NotFound4862 小时前
c++ 逆向工程ida pro c++如何使用ida pro插件和脚本
jvm·数据库·python
qq_189807032 小时前
CSS如何根据浏览器支持引入样式_利用@supports进行条件加载
jvm·数据库·python