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")
相关推荐
Q26433650232 小时前
【有源码】基于 Hadoop 生态的化妆品销售数据存储分析与可视化 面向化妆品行业的用户画像构建与销售机会识别研究
大数据·hadoop·python·机器学习·spark·毕业设计·课程设计
2601_962078198 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
2601_962218618 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949658 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin8 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885728 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户8 小时前
Java锁
java·开发语言
李高钢9 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
多加点辣也没关系9 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2339 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理