Python如何修改print控制台输出文本的显示颜色
终端彩色文本输出实现方案
两种实现方式都可以,不需要强制预先定义全部颜色配置,根据项目的使用场景选就行:
- 如果游戏里用到的彩色文本场景很少,只有失败红、胜利蓝两三种,直接把颜色控制符写在字符串里就行,不需要额外提前做配置。
- 如果用到的颜色场景多,还有系统提示、道具品质、对话高亮之类的不同颜色需求,提前把颜色码定义成常量复用效率更高,后续要调整颜色也不用逐行改字符串。
把示例文本改成红色的实现方法
终端的彩色输出靠ANSI转义序列实现,红色前景色的控制码是\033[31m,颜色重置码是\033[0m——一定要在彩色文本末尾加重置码,否则后续终端所有输出都会一直保持红色,不会恢复默认颜色。
直接在字符串内嵌控制符的写法(不需要预定义配置):
print('\033[31mThank you for playing but unfortunately you lost your life!\033[0m')
如果是多场景复用,推荐提前定义颜色配置的写法,代码可读性更高:
# 预先定义项目需要的颜色常量 RED = '\033[31m' BLUE = '\033[34m' GREEN = '\033[32m' YELLOW = '\033[33m' RESET = '\033[0m' # 失败场景输出红色 print(f'{RED}Thank you for playing but unfortunately you lost your life!{RESET}') # 胜利场景输出蓝色 print(f'{BLUE}Congratulations! You cleared all levels and won the game!{RESET}')
小提示:旧版本Windows默认CMD可能默认关闭ANSI转义支持,现在主流的新版Windows Terminal、macOS终端、Linux发行版默认终端都原生支持该特性;如果要兼容老版CMD,在程序开头加一句
import os后调用os.system('')即可激活ANSI支持。
内容的提问来源于stack exchange,提问作者Todd Goodwin
相关产品推荐
相关产品推荐

