在Python中对齐字符串

在Python中对齐字符串,python,Python,我在Python中搜索创建对齐字符串,并找到了一些相关的东西,但对我来说不起作用。这里有一个例子: for line in [[1, 128, 1298039], [123388, 0, 2]]: print('{:>8} {:>8} {:>8}'.format(*line)) 输出: 1 128 1298039 123388 0 2 这是我在shell中看到的: 正如你所看到的,对齐没有发生。使用\t时也

我在Python中搜索创建对齐字符串,并找到了一些相关的东西,但对我来说不起作用。这里有一个例子:

for line in [[1, 128, 1298039], [123388, 0, 2]]:
    print('{:>8} {:>8} {:>8}'.format(*line))
输出:

       1      128  1298039
  123388        0        2
这是我在shell中看到的:

正如你所看到的,对齐没有发生。使用
\t
时也会出现同样的问题。
如何以整洁的表格格式对齐字符串?

您已将空闲shell配置为使用比例字体,即对不同字符使用不同宽度的字体。请注意
()
对占用的水平空间几乎与上面的
字符相同

您的代码在其他方面是完全正确的;使用固定宽度字体,数字将正确对齐

改为使用固定宽度字体。Courier是一个不错的默认选择,但Windows安装了各种其他字体,包括Console


在选项->配置空闲菜单中配置字体。从字体面列表中选择其他字体。下面面板中的示例字符应该对齐(除了结尾的第二行
k
,它应该突出)。

谢谢@MartijnPeters。还有其他固定宽度字体吗?@SamChats:很多。它们也被称为“单空间”,在谷歌上搜索更多信息。我脑海中浮现出:Lucida Sans打字机、摩纳哥、Andale Mono、Menlo、Courier、Courier New、PT Mono、Bitstream Vera Sans Mono等。