печать питона с фиксированным числом символов - PullRequest
0 голосов
/ 31 октября 2018

Я искал с красивым шрифтом и форматированием строк / чисел, но пока не смог найти правильный ответ. Я просто пытаюсь напечатать какое-то сообщение и выровнять их правильно по столбцам, каждый из которых имеет фиксированное количество символов. Если я вставлю вкладку, выравнивание будет неправильным

полная таблица хранится в двумерном массиве.

это то, что у меня сейчас

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 голосов
/ 31 октября 2018

Спасибо @canberk_gurel, это отлично сработало и с% -10, если я хочу изменить выравнивание

for res in range(len(card_result)):
      res_value = ("%.5f" % np.array(card_result[res]))
      print("%10s" % res_value),
0 голосов
/ 31 октября 2018

Поскольку 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

Конечно, я ожидаю, что вы будете управлять печатью более элегантно, чем мой простой пример ...

...