我已经按照this解决方案对终端上的矩阵进行颜色格式化。但是当我打印它时,为了分隔矩阵的行而添加的换行没有格式化。我期望整个终端变成背景白色和黑色文本(对应于矩阵高度的区域),但显然不是。为什么呢?
这是代码:
m = np.full((4,4),'0',dtype=np.str_)
print('\x1b[0;30;47m\n'+'\n\n'.join(' '+' '.join(line) for line in m)+'\n\x1b[0m')
解决 最后,我简单地将颜色格式应用于由新行分隔的每个字符串。
答案 0 :(得分:1)
我认为这种行为的原因是大多数终端仅将背景颜色应用于实际打印的字符,但\n\n
会生成包含无字符的行(而不是一行)充满空间)。至少那是我手边的所有终端所做的。试试这个:
print('\x1b[0;30;47m\n' + '\n'.join([' '*i for i in range(10)]) + '\n\x1b[0m')
答案 1 :(得分:1)
单元格背景仅在屏幕更新时着色。当程序打印换行符时,它“仅”使光标位置向下移动(不更新单元格)。
但是,如果您修改程序以打印更多行,即向下到屏幕底部,它将执行不同的操作:
这是因为终端从xterm和Linux控制台复制行为。终端实际上有几个功能在擦除部分屏幕时结合形成其行为。
进一步阅读: