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