python对齐字符串的两种方法

描述

第一种:使用 format

左对齐

>>> "{:<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


审核编辑:汤梓红
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

>> "{:^10}".format("a") ' a ' 当你不指定 、^ 时,对字符串,默认左对齐;对数值,默认右对齐 >>> "{:10}".format("a") 'a ' 有了上面的铺垫,写一个整齐的 1-10 的平方、立方表就很容易了。 >>> for x in range(1, 1">
×
20
完善资料,
赚取积分