如何在python终端中为字符串着色?

hmtdttj4  于 2023-03-28  发布在  Python
关注(0)|答案(3)|浏览(70)

我试图在Python 3中只给一个变量着色,但是每当我运行代码时,sring在我的终端中被着色,但是之后的所有其他东西也被着色。我试图在没有任何导入的情况下完成它。这是我的代码。

tentativas = 20
print(f'Tentativas restantes:', f'\033[0;36m {tentativas}')
bihw5rsg

bihw5rsg1#

要重置颜色,您必须使用"\033[0;0m",或者在下次打印时将其设置为前缀,例如。

print("\033[0;0m This is your next print")

或执行空打印只是为了重置颜色

print("\033[0;0m", end='')
shyt4zoc

shyt4zoc2#

您可以使用模块colorama
安装:pip install colorama
打开脚本
from colorama import力作为颜色

k4ymrczo

k4ymrczo3#

当使用ANSI escape codes,例如\033[0;36m时,最佳做法是始终使用\033[0;0m重置颜色/样式。否则,颜色/样式将溢出到终端中的后续消息中。您的示例应该是:

tentativas = 20
print(f'Tentativas restantes:', f'\033[0;36m {tentativas}\033[0;0m')

如果你不介意,请允许我重构你的代码,这样它更容易阅读:

class Color():
  CYAN = '\033[0;36m'
  OFF = '\033[0;0m'

tentativas = 20

print(f'Tentativas restantes: {Color.CYAN}{tentativas}{Color.OFF}')

虽然你不打算使用Python包,但你可能想考虑让你的代码更容易阅读。使用Colorist(是的,我是作者,完全公开),你的例子可能看起来像这样:

from colorist import Color

tentativas = 20

print(f'Tentativas restantes: {Color.CYAN}{tentativas}{Color.OFF}')

相关问题