在 Python 中对齐字符串
Posted
技术标签:
【中文标题】在 Python 中对齐字符串【英文标题】:Aligning strings in Python 【发布时间】:2016-03-28 20:07:17 【问题描述】:我搜索了在 Python 中创建对齐的字符串并找到了一些相关的东西,但对我没有用。这是一个例子:
for line in [[1, 128, 1298039], [123388, 0, 2]]:
print(':>8 :>8 :>8'.format(*line))
输出:
1 128 1298039
123388 0 2
这是我在 shell 中看到的:
如您所见,对齐并没有发生。使用\t
时也会出现同样的问题。
如何以整齐的表格格式对齐字符串?
【问题讨论】:
【参考方案1】:您已将 IDLE shell 配置为使用 proportional 字体,一种对不同字符使用不同宽度的字体。请注意 ()
对占用的水平空间量与它上面的 >
字符几乎相同。
您的代码在其他方面完全正确;使用固定宽度的字体,数字将正确排列。
改为使用 固定宽度 字体。 Courier 是一个不错的默认选择,但 Windows 安装了各种其他成比例的字体,包括 Consolas。
在选项 -> 配置 IDLE 菜单中配置字体。从 Font Face 列表中选择不同的字体。下面面板中的示例字符应该对齐(除了最后的第二行k
,它应该突出)。
【讨论】:
感谢@MartijnPeters。是否有其他固定宽度字体可用? @SamChats:很多。它们也被称为“等宽”,在谷歌上搜索更多。想不到:Lucida Sans Typewriter、Monaco、Andale Mono、Menlo、Courier、Courier New、PT Mono、Bitstream Vera Sans Mono 等。以上是关于在 Python 中对齐字符串的主要内容,如果未能解决你的问题,请参考以下文章