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()

- 两张完整的终端颜色表
- 第一张:正常文字(style=0),8行字体色 × 8列背景色
- 第二张:粗体文字(style=1),8行字体色 × 8列背景色
- 每个格子里的数字(如
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")
