如何使用Rich控制台打印带红粗格式的变量?代码问题排查
无法在Rich的console.print中正确渲染变量值
我需要实现的功能是:用户输入内容后,将series变量以加粗红色的格式打印出来。
当前使用的代码:
series = console.input("Search [bold cyan]Series[/] :earth_asia:\n> ") console.print('Searching for [bold red] $(series) [/]')
实际输出:
Search Series 🌏 > sample Searching for $(series)
期望输出:
Search Series 🌏 > sample Searching for sample
现在代码无法正确渲染series变量的值,求解决方法。
问题出在单引号包裹的字符串中,$(series)会被当作普通文本处理,不会被解析为变量引用。Rich的console.print支持两种变量插值方式,任选其一即可解决:
方法1:使用Python格式化字符串(f-string)
在字符串前添加f前缀,用{}包裹变量名,让Python提前解析变量:
series = console.input("Search [bold cyan]Series[/] :earth_asia:\n> ") console.print(f'Searching for [bold red]{series}[/]')
方法2:使用Rich内置的占位符插值
在字符串中用{变量名}作为占位符,再在console.print的参数中传入对应变量:
series = console.input("Search [bold cyan]Series[/] :earth_asia:\n> ") console.print('Searching for [bold red]{series}[/]', series=series)
两种方法都能让series变量的值被正确替换,同时保留加粗红色的格式,得到你期望的输出。
内容的提问来源于stack exchange,提问作者desymmetric
相关产品推荐
相关产品推荐

