Python 终端颜色

引言

在编写 Python 程序时,有时我们希望在终端中输出一些带有颜色的文字,以便更好地突出显示或提醒用户。Python 提供了一种简单的方法来实现这个目标,我们可以使用特殊的转义序列来控制终端输出的颜色。

在本文中,我们将介绍如何在 Python 中使用终端颜色,并给出一些常见的应用示例。

终端颜色的表示方法

在终端中,我们可以使用 ANSI 转义序列来控制文本的颜色、样式和其他属性。ANSI 转义序列以 \x1b[ 开头,并以字母 m 结尾。

具体来说,我们可以使用以下转义序列来改变终端中文本的颜色:

  • \x1b[30m\x1b[37m 用于设置文本的前景色(即文本本身的颜色)为黑色到白色。
  • \x1b[90m\x1b[97m 用于设置文本的前景色为亮黑色到亮白色。
  • \x1b[40m\x1b[47m 用于设置文本的背景色(即文本所在区域的颜色)为黑色到白色。
  • \x1b[100m\x1b[107m 用于设置文本的背景色为亮黑色到亮白色。

除了颜色之外,我们还可以使用其他的 ANSI 转义序列来控制文本的样式,例如加粗、斜体等。

在 Python 中使用终端颜色

在 Python 中,我们可以使用 ANSI 转义序列来控制终端输出的颜色。具体来说,我们可以使用 print 函数中的 end 参数来输出转义序列。

以下是一个简单的示例,展示了如何在 Python 中输出带有颜色的文字:

print("\x1b[31mHello, World!\x1b[0m")

在上面的示例中,\x1b[31m 表示设置文本的颜色为红色,\x1b[0m 表示恢复默认的颜色设置。

除了直接在 print 函数中使用转义序列,我们还可以定义一个函数来简化输出带有颜色的文字的操作。

下面是一个名为 colored_print 的函数的示例,它接受两个参数:要输出的文字和颜色的代码。

def colored_print(text, color_code):
    print(f"\x1b[{color_code}m{text}\x1b[0m")
    
colored_print("Hello, World!", 31)

在上面的示例中,我们定义了一个名为 colored_print 的函数,它使用 f-string 来将文本和颜色代码拼接成一个字符串,并使用 print 函数输出。

常见的应用示例

在实际应用中,我们可以用终端颜色来增加输出的可读性,提醒用户或突出显示一些重要的信息。

以下是一些常见的应用示例:

输出彩色的提示信息

我们可以使用终端颜色来输出彩色的提示信息,以提醒用户注意。例如,我们可以使用红色来表示错误信息,绿色来表示成功信息,黄色来表示警告信息等。

下面是一个示例,展示了如何使用终端颜色来输出不同类型的提示信息:

def error_message(text):
    colored_print(text, 31)

def success_message(text):
    colored_print(text, 32)

def warning_message(text):
    colored_print(text, 33)

error_message("Error: Something went wrong.")
success_message("Success: Operation completed successfully.")
warning_message("Warning: This action may have unintended consequences.")

在上面的示例中,我们定义了三个函数:error_messagesuccess_messagewarning_message,它们分别输出红色、绿色和黄色的提示信息。

高亮显示