【问题标题】:Bold formatting in Python consolePython 控制台中的粗体格式
【发布时间】:2018-10-31 18:45:40
【问题描述】:

我在 Python 代码中定义了一个列表。

list = ['kumar','satheesh','rajan']    
BOLD = '\033[1m'

for i, item in enumerate(list):
   list[i] = BOLD + item

print (list)

但我收到了output as ['\x1b[1mfsdfs', '\x1b[1mfsdfsd', '\x1b[1mgdfdf']

但所需的输出是['kumar','satheesh','rajan']

如何在bold 中使用pythonlist elements list elements

【问题讨论】:

  • 请考虑为您的列表使用不同的变量名.. list 不是强制关键字,但如果您将其用作变量名,它会给您带来无法预料的问题..
  • 如果真的想在打印数组之前打印粗体,您也在为方括号制作粗体

标签: python console ansi output-formatting


【解决方案1】:

您还需要指定END = '\033[0m':

list = ['kumar','satheesh','rajan']

BOLD = '\033[1m'
END = '\033[0m'

for each in list:
    print('{}{}{}'.format(BOLD, each, END))

使列表本身像 ['kumar', 'satheesh', 'rajan'] 一样粗体:

print('{}{}{}'.format(BOLD, list, END))

【讨论】:

【解决方案2】:

尝试如下打印

for each in list:
    print(each)

以下是输出

【讨论】:

  • 我没有投反对票,我知道它会起作用。但是仅代码的答案在 SO 上被认为很差。解释为什么它以这种方式工作将大大改善您的答案...
  • 您的代码将以粗体打印所有输出,即使项目没有以转义字符串作为前缀,因为它没有以 '\033[0m' 结尾。
  • 我需要将输出包含在列表中。仅在列表中,粗体字母不会出现@Kalyan
  • 您是否尝试在 ipython 控制台中执行此操作?
【解决方案3】:

Kalyan 给出了一种可能的方法,但未能解释原因。

当要求 Python 打印一个列表时,它会输出列表的开始和结束标记 ([]) 以及列表中所有项目的表示。对于字符串来说,就是转义不可打印的字符。

除了单独打印项目之外,您几乎无能为力

for i lst:
    print i

或使用连接构建一个唯一的字符串:

string_to_output = '[' + ', '.join(lst) + ']'
print(string_to_output)

顺便说一句,正如 Austin 所解释的,'\x01b[1m 是一个要求 ANSI 兼容终端以粗体模式传递的序列,因此您必须一次使用'\x01b[0m 恢复到正常模式。

请记住:ANSI 在 Linux 终端仿真中很常见,但它还远未普及……在使用之前尝试使用export TERM=tvi950(谷歌搜索 vt100 和 tvi950 以了解更多信息)……

【讨论】:

    猜你喜欢
    • 2023-01-24
    • 2022-11-20
    • 1970-01-01
    • 2021-12-02
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    相关资源
    最近更新 更多