Python带颜色打印

引言

在编程过程中,打印信息是调试代码和输出结果的重要方式之一。然而,当输出大量信息时,很难对不同的信息进行区分。幸运的是,Python提供了一种简单的方法来为打印的信息添加颜色,以便更好地区分和理解输出结果。本文将介绍如何在Python中使用不同的颜色打印文本,并提供一些示例代码帮助您加深理解。

使用ANSI转义序列

在Python中,可以使用ANSI转义序列为输出文本添加颜色。这些序列是特殊的字符组合,可以修改终端的显示属性,包括文本颜色、背景颜色和样式。下面是一些常用的ANSI转义序列:

  • \033[0m:重置所有属性
  • \033[1m:设置粗体
  • \033[3m:设置斜体
  • \033[4m:设置下划线
  • \033[30m\033[37m:设置文本颜色,从黑色到白色
  • \033[40m\033[47m:设置背景颜色,从黑色到白色

示例代码

下面是一些示例代码,展示了如何在Python中使用ANSI转义序列来打印带有颜色的文本:

# 打印红色文本
print("\033[31mThis is red text\033[0m")

# 打印绿色背景的文本
print("\033[42mThis text has a green background\033[0m")

# 打印粗体和下划线的蓝色文本
print("\033[1;4;34mThis is bold and underlined blue text\033[0m")

执行以上代码,您将看到不同颜色的文本输出。请注意,每个打印语句后面都有一个重置序列\033[0m,以确保后续文本不会受到影响。

封装为函数

为了更方便地使用带有颜色的打印功能,我们可以将其封装为一个函数。下面是一个示例函数,接受文本和颜色作为参数,并将文本以指定的颜色打印出来:

def colored_print(text, color):
    color_code = {
        'black': '\033[30m',
        'red': '\033[31m',
        'green': '\033[32m',
        'yellow': '\033[33m',
        'blue': '\033[34m',
        'magenta': '\033[35m',
        'cyan': '\033[36m',
        'white': '\033[37m',
    }
    if color in color_code:
        print(f"{color_code[color]}{text}\033[0m")
    else:
        print(f"Invalid color: {color}")

使用上述函数,我们可以更灵活地打印各种颜色的文本:

colored_print("This is red text", "red")
colored_print("This text has a green background", "green")
colored_print("This is bold and underlined blue text", "blue")
colored_print("Invalid color text", "invalid_color")

状态图示例

下面是一个使用mermaid语法中的stateDiagram标识的状态图示例,展示了一个简单的订单处理流程:

stateDiagram
    [*] --> Pending
    Pending --> Processing: Process order
    Processing --> Shipped: Ship order
    Shipped --> Delivered: Deliver order
    Delivered --> [*]

在上述状态图中,订单从“待处理”状态开始,然后依次经过“处理中”、“已发货”和“已交付”状态。最后,订单回到初始状态,形成一个闭环。

旅行图示例

下面是一个使用mermaid语法中的journey标识的旅行图示例,展示了一段旅程中的不同地点和行程:

journey
    title My Journey
    section Start
    Home --> Hotel: Check-in
    section Day 1
    Hotel --> Sightseeing: Visit Museum
    Sightseeing --> Hotel: Return to