python打印固定数量的字符

时间:2018-10-31 05:37:17

标签: python python-2.7 formatting format

我一直在用漂亮的打印和字符串/数字格式进行搜索,但找不到正确的答案。 我只是想打印一些消息,并使其每列正确对齐,每列具有固定数量的字符。 如果我插入标签,则某些对齐方式也不正确

整个表存储在2D数组中。

这是我目前拥有的

card # White Black Red Blue ap 1.6 ap 2.4 ap 3.2 ap 4.8 width lenght 
1.00000 86.40061 7.94422 63.59993 34.30056 5.56550 6.47734 5.24856 6.96552 14.12500 14.46667 
2.00000 86.20923 7.85607 63.57329 34.36462 4.43349 5.57718 5.03046 7.04776 14.10000 14.46667 
9.00000 86.36097 7.79645 63.60142 34.23694 3.93107 5.43634 4.64917 6.65981 13.77500 14.63333 
10.00000 86.27083 7.80646 63.48926 34.24622 3.49787 4.99527 4.46751 6.73853 14.07500 14.43333 
11.00000 86.19497 7.75656 63.49447 34.09210 3.82019 5.42815 4.60028 6.38847 13.95000 14.60000 

下面是我想得到的内容,其中每列由10个字符组成。左对齐还是右对齐都没关系。

card #    White     Black    Red       Blue      ap  1.6  ap 2.4   ap 3.2   ap 4.8   width     lenght 
1.00000   86.40061  7.94422  63.59993  34.30056  5.56550  6.47734  5.24856  6.96552  14.12500  14.46667 
2.00000   86.20923  7.85607  63.57329  34.36462  4.43349  5.57718  5.03046  7.04776  14.10000  14.46667 
9.00000   86.36097  7.79645  63.60142  34.23694  3.93107  5.43634  4.64917  6.65981  13.77500  14.63333 
10.00000  86.27083  7.80646  63.48926  34.24622  3.49787  4.99527  4.46751  6.73853  14.07500  14.43333 
11.00000  86.19497  7.75656  63.49447  34.09210  3.82019  5.42815  4.60028  6.38847  13.95000  14.60000 

2 个答案:

答案 0 :(得分:2)

不推荐使用ljust(),因此您应该使用format

>>> your_message1 = '86.20923'
>>> your_message2 = '7.85607'
>>> your_message3 = '6.36097'
>>> your_message4 = '34.09210'
>>> print('{:>10}'.format(your_message1) + '{:>10}'.format(your_message2) + '\n'{:>10}'.format(your_message3) + '{:>10}'.format(your_message4))

86.20923   7.85607
 6.36097  34.09210

当然,我希望您比我的简单示例更优雅地管理打印内容...

答案 1 :(得分:0)

谢谢@canberk_gurel,这非常有效 如果我想更改对齐方式,请加上%-10s

for res in range(len(card_result)):
      res_value = ("%.5f" % np.array(card_result[res]))
      print("%10s" % res_value),