如何使用变量配置ANSI转义码来格式化Python打印语句?
解决方法
你可以直接把color变量嵌入到f-string的ANSI控制码中,让Python解析这个变量值,以下是两种可行的写法:
方法1:直接在f-string中嵌入颜色变量
把颜色值和内容都放在同一个f-string里,用{color}替换固定的32:
dic = { "greetings": ["hello", "bonjour"], "goodbyes": ["adios", "4"] } newList = ["hola", "barev"] dic.update({"greetings": newList}) color = 32 # 直接在f-string里使用color变量 print(f"\033[{color}m{newList[0]}\033[0m", f"\033[{color}m{newList[1]}\033[0m")
方法2:定义颜色模板复用
如果需要多次使用同一种颜色,先定义模板再填充内容更高效:
dic = { "greetings": ["hello", "bonjour"], "goodbyes": ["adios", "4"] } newList = ["hola", "barev"] dic.update({"greetings": newList}) color = 32 # 先创建带颜色的模板,{}用来占位内容 color_template = f"\033[{color}m{{}}\033[0m" # 用format填充要显示的内容 print(color_template.format(newList[0]), color_template.format(newList[1]))
关键说明
- ANSI控制码的格式是
\033[颜色码m内容\033[0m,其中\033[0m用来重置颜色,避免后续输出持续带色。 - 你原来的代码用逗号分隔
print参数,会把控制码、颜色值、内容拆成独立部分打印,无法组合成完整的颜色指令,必须把整个带色字符串写成一个整体(f-string或模板拼接均可)。
内容的提问来源于stack exchange,提问作者edwardvth
相关产品推荐
相关产品推荐

