Операции над строками

К операциям над строками, которые имеют специальную синтаксическую поддержку в языке, относятся, в частности конкатенация (склеивание) строк, повторение строки, форматирование:

>>> print "A" + "B", "A"*5, "%s" % "A"

AB AAAAA A

В операции форматирования левый операнд является строкой формата, а правый может быть либо кортежем, либо словарем, либо некоторым значением другого типа:

>>> print "%i" % 234

234

>>> print "%i %s %3.2f" % (5, "ABC", 23.45678)

5 ABC 23.46

>>> a = 123

>>> b = [1, 2, 3]

>>> print "%(a)i: %(b)s" % vars()

123: [1, 2, 3]

Операция форматирования

В строке формата кроме текста могут употребляться спецификации, регламентирующие формат выводимого значения. Спецификация имеет синтаксис

"%" [ключ][флаг*][шир][.точность][длина_типа]спецификатор

ключ: "(" символ за исключением круглых скобок* ")"

флаг: "+" | "-" | пробел | "#" | "0"

шир: ("1" ... "9")("0" ... "9")* | "*"

точность: ("1" ... "9")* | "*"

длина_типа: "a" ... "z" | "A" ... "Z"

спецификатор: "a" ... "z" | "A" ... "Z" | "%"

Где символы обозначают следующее:

ключ

Ключ из словаря.

флаги

Дополнительные свойства преобразования.

шир

Минимальная ширина поля.

точность

Точность (для чисел с плавающей запятой).

длина_типа

Модификатор типа.

спецификатор

Тип представления выводимого объекта.

В следующей таблице приведены некоторые наиболее употребительные значения для спецификации форматирования.

Символ Где применяется Что указывает 0 флаг Заполнение нулями слева - флаг Выравнивание по левому краю + флаг Обязательный вывод знака числа пробел флаг Использовать пробел на месте знака числа d, i спецификатор Знаковое целое u спецификатор Беззнаковое целое o спецификатор Восьмеричное беззнаковое целое x, X спецификатор Шестнадцатеричное беззнаковое целое (со строчными или прописными латинскими буквами) e, E спецификатор Число с плавающей запятой в формате с экспонентой f, F спецификатор Число с плавающей запятой g, G спецификатор Число с плавающей точкой в более коротком написании (автоматически выбирается e или f) с спецификатор Одиночный символ (целое число или односимвольная строка) r спецификатор Любой объект, приведенный к строке функцией repr() s спецификатор Любой объект, приведенный к строке функцией str() % спецификатор Знак процента. Для задания одиночного процента необходимо записать %%

Индексы и срезы

Следует напомнить, что строки являются неизменчивыми последовательностями, поэтому к ним можно применять операции взятия элемента по индексу и срезы:

>>> s = "транспорт"

>>> print s[0], s[-1]

т т

>>> print s[-4:]

порт

>>> print s[:5]

транс

>>> print s[4:8]

спор

Примечание:

При выделении среза нумеруются не символы строки, а промежутки между ними.