在控制臺print時如何對齊字符串?
大家好,歡迎來到 Crossin的編程教室 !
很多同學(xué)在使用命令行輸出數(shù)據(jù)時都遇到一個問題:不同長度的字符無法對齊,即使用 \t 也會有問題,導(dǎo)致結(jié)果不夠美觀。
今天就給大家介紹在命令行打印字符串時,按規(guī)則對齊的兩種方法,幫助大家在 shell 界面下輸出漂亮的表格。
第一種:使用 format
先來看幾個小 demo
左對齊
>>> "{:<10}".format("a")
'a '
>>>
右對齊
>>> "{:>10}".format("a")
' a'
>>>
居中
>>> "{:^10}".format("a")
' a '
>>>
當(dāng)你不指定 < 、>、^ 時,默認(rèn)就是左對齊
>>> "{: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以上就是今天的分享,很多漂亮的表格打印模塊都是基于以上內(nèi)置函數(shù)實現(xiàn)的,掌握了這兩個,以后都可以自己實現(xiàn)啦!
如果文章對你有幫助,歡迎轉(zhuǎn)發(fā)/點贊/收藏~
作者:寫代碼的明哥
_往期文章推薦_
評論
圖片
表情
