Python 对齐字符串的两种方法

作者: 王炳明 分类: Python 基础教程 发布时间: 2020-11-19 11:18 热度:55

第一种:使用 format

使用前先来看几个小 demo

左对齐

>>> "{:<10}".format("a")
'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

明哥写文章,辛苦了,请他喝杯咖啡吧?

发表评论

电子邮件地址不会被公开。 必填项已用*标注