点击蓝色“Python空间”关注我丫
加个“星标”,每天一起快乐的学习
今天给大家介绍如何在打印字符串时,规则对齐的两种方法,帮助大家在 shell 界面下输出漂亮的表格。
第一种:使用 format
先来看几个小 demo
左对齐
>>> "{:
'a '
>>>
右对齐
>>> "{:>10}".format("a")
' a'
>>>
居中
>>> "{:^10}".format("a")
' a '
>>>
当你不指定 、>、^ 时,默认就是左对齐
>>> "{:10}".format("a")
'a '
>>>
有了上面的铺垫,写一个整齐的 1-10 的平方、立方表就很容易了。
>>> for x in range(1, 11):
... print('{:2d} {:3d} {:4d}'.format(x, x*x, x*x*x))
...
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
对齐的思想其实就是在不足的位自动给你补上空格。
如果不想使用空格,可以指定你想要的字符进行填充,比如下面我用 0 来补全。
>>> for x in range(1, 11):
... print('{:02d} {:03d} {:04d}'.format(x, x*x, x*x*x))
...
01 001 0001
02 004 0008
03 009 0027
04 016 0064
05 025 0125
06 036 0216
07 049 0343
08 064 0512
09 081 0729
10 100 1000
第二种:使用 ljust, rjust
左对齐
>>> "a".ljust(10)
'a '
>>>
右对齐
>>> "a".rjust(10)
' a'
>>>
居中
>>> "a".center(10)
' a '
>>>
同样写一个整齐的 1-10 的平方、立方表
>>> for x in range(1, 11):
... print(' '.join([str(x).ljust(2), str(x * x).ljust(3), str(x * x * x).ljust(4)]))
...
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
如果不想使用空格,而改用 0 来补齐呢?可以这样
>>> for x in range(1, 11):
... print(' '.join([str(x).rjust(2, "0"), str(x*x).rjust(3, "0"), str(x*x*x).rjust(4, "0")]))
...
01 001 0001
02 004 0008
03 009 0027
04 016 0064
05 025 0125
06 036 0216
07 049 0343
08 064 0512
09 081 0729
10 100 1000
领取专属 10元无门槛券
私享最新 技术干货