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")
相关推荐
3095566666 小时前
股票接口返回 404 与空数组的排查笔记:证书状态与级别参数
java·笔记·python·ios·iphone·股票数据api·股票数据接口
2601_967980117 小时前
世界上最好的Python编辑器是什么?我投PyCharm一票
ide·python·pycharm·数据科学·jupyter notebook
晴天的雨.9927 小时前
【C++】继承篇
java·开发语言·c++
SomeOtherTime7 小时前
第 1 讲:内存布局与所有权解剖——栈帧、胖指针与“移动/拷贝”在汇编层面的真实面目
java·开发语言·汇编
wuyk5557 小时前
Spider-第09讲-三格式落盘CSV-Excel-JSON
爬虫·python·json·excel
青少儿编程课堂7 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会图形化考级:校园大富翁经营闯关解析
c++·python·算法·bfs·信息学竞赛
总要学点什么8 小时前
第106篇:三维特效-流动线效果——让一颗光点沿整条线一路滚到头
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
特立独行的猫A14 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
大可不必了18 小时前
03 函数定义和调用
开发语言·python
I_belong_to_jesus18 小时前
C++关于分支预测的优化1
开发语言·c++·算法