Как сделать строку с фиксированным размером в Python?

Я хочу создать отформатированную строку с фиксированным размером с фиксированной позицией между полями. Пример объясняет лучше, здесь четко 3 различных поля, а строка имеет фиксированный размер:

XXX        123   98.00
YYYYY        3    1.00
ZZ          42  123.34

Как я могу применить такое форматирование к строке в Python (2.7)?

1 ответ

Решение

Конечно, используйте метод .format. Например,

print '{:10s} {:3d}  {:7.2f}'.format('xxx', 123, 98)
print '{:10s} {:3d}  {:7.2f}'.format('yyyy', 3, 1.0)
print '{:10s} {:3d}  {:7.2f}'.format('zz', 42, 123.34)

распечатает

xxx        123    98.00
yyyy         3     1.00
zz          42   123.34

Вы можете настроить размеры полей по своему усмотрению. Обратите внимание, что .format работает независимо от print отформатировать строку. Я просто использовал печать для отображения строк. Краткое объяснение:

10s отформатировать строку с 10 пробелами, по умолчанию выровненные по левому краю

3d отформатировать целое число, зарезервировав 3 пробела, по умолчанию правое выравнивание

7.2f отформатировать число с плавающей запятой, зарезервировав 7 пробелов, 2 после десятичной запятой, по умолчанию только что заданные.

Есть много дополнительных опций для позиционирования / форматирования строк (отступы, выравнивание по левому / правому краю и т. Д.), Операции форматирования строк предоставят больше информации.

Другие вопросы по тегам