使用 Python 打印漂亮的表格,這兩項基本功你可會?
今天給大家介紹如何在打印字符串時,規(guī)則對齊的兩種方法,幫助大家在 shell 界面下輸出漂亮的表格。
第一種:使用 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
以上就是今天的分享,很多漂亮的表格打印模塊都是基于以上內(nèi)置函數(shù)實現(xiàn)的,掌握了這兩個,以后都可以自己實現(xiàn)啦~~希望本文對你能有幫助
文末福利
明哥整理了 21 張 Python 代碼速查表,每一張都是國外的大師總結(jié)的,非常實用 ~
還有 2 張高清的 PyCharm 快捷鍵一覽圖,一張 Windows ,一張 Mac,放在桌面上,需要的時候打開一查,非常方便。。