s1 = "строка 1"
s2 = r'\1\2'
s3 = """apple\ntree""" # \n — символ перевода строки
s4 = """apple
tree""" # строка в утроенных кавычках может иметь внутри переводы строк
s5 = '\x73\65'
u1 = u"Unicode literal"
u2 = u'\u0410\u0434\u0440\u0435\u0441'
Примечание:
Обратная косая черта не должна быть последним символом в литерале, то есть, "str\"
вызовет синтаксическую ошибку.
Указание кодировки позволяет применять в Unicode–литералах указанную в начале программы кодировку. Если кодировка не указана, можно пользоваться только кодами символов, заданными через обратную косую черту.
К операциям над строками, которые имеют специальную синтаксическую поддержку в языке, относятся, в частности конкатенация (склеивание) строк, повторение строки, форматирование:
>>> 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]
спор
Примечание:
При выделении среза нумеруются не символы строки, а промежутки между ними.
До того как у строк появились методы, для операций над строками применялся модуль string
. Приведенный пример демонстрирует, как вместо функции из string
использовать метод (кстати, последнее более эффективно):
Читать дальше
Конец ознакомительного отрывка
Купить книгу