Работа со строками в Python.

Строки в Python — это упорядоченные последовательности символов, используемые для хранения и представления текстовой информации, поэтому с помощью строк можно работать со всем, что может быть представлено в текстовой форме.

Строки невозможно изменить – в этом случае говорят, что это immutable тип. Попытка изменить символ в определенной позиции или подстроку вызовет ошибку.

Литералы строк

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

Строки в апострофах и в кавычках

S = 'spam"s'
S = "spam's"

Строки в апострофах и в кавычках — одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.

Экранированные последовательности

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

Экранированная последовательностьНазначение
\nПеревод строки
\aЗвонок
\bЗабой
\fПеревод страницы
\rВозврат каретки
\tГоризонтальная табуляция
\vВертикальная табуляция
\N{id}Идентификатор ID базы данных Юникода
\uhhhh16-битовый символ Юникода в 16-ричном представлении
\Uhhhh…32-битовый символ Юникода в 32-ричном представлении
\xhh16-ричное значение символа
\ooo8-ричное значение символа
\0Символ Null (не является признаком конца строки)


Если перед открывающей кавычкой стоит символ ‘r’ (в любом регистре), то механизм экранирования отключается. Например:

S = r'C:\newt.txt'

Строки в тройных апострофах или кавычках

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

>>> c = '''это очень большая
... строка, многострочный
... блок текста'''
>>> c
'это очень большая\nстрока, многострочный\nблок текста'
>>> print(c)
это очень большая
строка, многострочный
блок текста

Функции и методы строк

Конкатенация (сложение)

>>> S1 = 'При'
>>> S2 = 'вет'
>>> print(S1 + S2)
'Привет'

Дублирование строки

>>> print('Привет' * 3)
ПриветПриветПривет

Длина строки (функция len)

>>> len('Привет')
6

Доступ по индексу

>>> S = 'Привет'
>>> S[0]
'П'
>>> S[2]
'и'
>>> S[-2] #Доступ к отрицательному индексу
'е'

В Python возможен и доступ по отрицательному индексу, при этом отсчет идет от конца строки.

Извлечение среза

Оператор извлечения среза: [X:Y]. X – начало среза, а Y – окончание. Cимвол с номером Y в срез не входит. По умолчанию первый индекс равен 0, а второй — длине строки.

>>> s = 'spameggs'
>>> s[3:5]
'me'
>>> s[2:-2]
'ameg'
>>> s[:6]
'spameg'
>>> s[1:]
'pameggs'
>>> s[:]
'spameggs'

Форматирование строк

Иногда бывает нужно сделать строку, подставив в неё некоторые данные, полученные в процессе выполнения программы. Подстановку данных можно сделать с помощью форматирования строк. Форматирование можно сделать с помощью оператора %, либо с помощью метода format.

Если для подстановки требуется только один аргумент, то значение — сам аргумент. Например:

>>> 'Hello, {}!'.format('Vasya')
'Hello, Vasya!'

А если несколько, то значениями будут являться все аргументы со строками подстановки (обычных или именованных):

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c')
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{2}, {1}, {0}'.format(*'abc')
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad')
'abracadabra'
>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
'Coordinates: 37.24N, -115.81W'
>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates: 37.24N, -115.81W'

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Один комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *