如何填充输出(打印、.format 等)

How to pad output (print, .format, etc)

我正在尝试在程序中实现如下内容。

假设我有以下代码:

for i in range(20, -1, -1):
    print(str(i) + "|")

输出如下所示:

20|
19|
...etc
5|
4|
...etc

| 总是在数字之后打印,但是我希望 | 在打印时对齐,这样我的输出看起来像这样:

20|
19|
...etc
5 | <--Notice a space after single digit
4 |
...etc

我尝试了各种使用print.format的方法,但我无法解决这个问题。

>>> for i in range(20, -1, -1):
    print('{:<2}|'.format(i))


20|
19|
18|
17|
16|
15|
14|
13|
12|
11|
10|
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |

<表示左对齐。 2可以根据需要改成多少。

试试这个方法:

for i in range(20, -1, -1):
    print('{:>5}'.format(str(i)+'|'))

进一步参考@https://docs.python.org/2/library/string.html#formatstrings

也在工作:

for i in range(20, -1, -1):
    print(str(i).rjust(width) + "|")

输出:

20|
19|
18|
17|
16|
15|
14|
13|
12|
11|
10|
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |