Форматированный ввод./вывод

Для форматированного вывода удобно использовать выравнивание по краю. Для этой цели в 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.

Сайт создан в системе uCoz