Форматированный ввод./вывод
Для форматированного вывода удобно использовать выравнивание по краю. Для этой цели в Python предусмотрены следующие функции модуля string: string.rjust(), string.ljust() и string.center(). Эти функции возвращают выровненную строку по правому и левому краю, а также по центру до определённого количества символов. Они принимают два параметра: саму строку и количество символов, зарезервированных под строку(если строка длинее, то она выводится как есть, а для удаления лишних символов воспользуйтесь “string.ljust(x, n)[0:n]#”). На примере это выглядит так:
>>> import string
>>> for x in range(1, 11):
... print string.rjust(`x`, 2), string.rjust(`x*x`, 3),
... # В предыдущем операторе print была поставлена в конце запятая, перевода строки нет:
... print string.rjust(`x*x*x`, 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
Для этой же цели можно использовать оператор print со строкой формата, аналогичной Си:
>>> for x in range(1,11):
... print '%2d %3d %4d' % (x, x*x, x*x*x)# %d означает целое число
...
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
Очевидно, что число после символа процента определяет количество символов для выравнивания. Спецификатор после процента обозначает тип числа:
|
%d |
Целое число |
|
%f |
Число с точкой |
|
%s |
Строка |
|
%c |
Символ |
|
%e |
Число в научном формате |
Таблица 3
Функция string.zfill() возвращает строку, дополненную нулями слева, если её длина меньше заданной. string.zfill(строка, заданная_ширина):
>>> import string
>>> string.zfill('12', 5)
'00012'
>>> string.zfill('-3.14', 7)
'-003.14'
>>> string.zfill('3.14159265359', 5)
'3.14159265359'
Если использовать оператор print, то можно для той же цели использовать конструкцию “%ширина_поля.число_знаков_после_запятой”:
>>> import math
>>> print 'Значение числа Пи приблизительно %5.3f.' % math.pi
Значение числа Пи приблизительно
3.142.