Методы строк для начинающих
У строк в Python есть множество полезных методов для того, чтобы дать возможность делать со строками различные полезные и нужные действия.
Методы похожи на функции, их тоже можно вызывать и, так же как и функции, они могут возвращать результат своей работы. Отличие же методов в том, что они привязаны к определенному типу данных и, например, методы строк могут быть вызваны только у строк.
Все методы строк можно посмотреть в нашем справочнике, а вот несколько примеров того, как вызывать методы строк.
string = "Hello world!"
print(string.lower()) # hello world!
print(string.upper()) # HELLO WORLD!
Начинающему программисту важно помнить, что методы не меняют исходную строку. Строки в Python вообще нельзя изменить. Если вы хотите поменять все ее символы, например, на символы нижнего регистра, нужно присвоить строке новое значение
string = "Hello world!"
string = string.lower()
Индексы строк
Бывает так, что иногда появляется необходимость выбирать отдельные символы из строки. В Python для этого необходимо использовать квадратные скобки. В таблице ниже приведены примеры получения символа строки по индексу строки Python, помещенной в переменную string.
Код | Результат | Описание |
---|---|---|
s[0] | P | Первый символ |
s[1] | y | Второй символ |
s[-1] | n | Последний символ |
s[-2] | o | Предпоследний символ |
Как вы видите, необходимо учитывать, что номером индекса первого символа будет [0]
Отрицательный индекс будет отсчитывать символы с конца строки.
Распространенная ошибка: предположим, что мы пытаемся задать индекс s[12]
. Но в примере выше мы имеем всего
шесть элементов строки, и логично что Python выдаст ошибку следующего содержания:
IndexError: string index out of range
Срезы строк
Срез используется для выделения части строки. Он состоит из индекса и диапазона. Ниже расположены несколько примеров со строкой
string = 'абвгдежзик'
Индекс
0 1 2 3 4 5 6 7 8 9
Символ
а б в г д е ж з и к
Фрагмент кода | Результат | Описание |
---|---|---|
string[2: 5] | вгд | Символы с индексом 2, 3, 4 |
string[: 5] | абвгд | Первые пять символов |
string[5:] | ежзик | Символы, начиная с индекса 5 и до конца |
string[-2:] | ик | Последние два символа |
string[: ] | абвгдежзик | Вся строка |
string[1 : 7 : 2] | бге | Со второго по шестой символы, через один |
string[ : : -1 ] | кизжедгвба | Обратный шаг, строка наоборот |
Базовая структура среза выглядит следующим образом:
Строка [начальный\_символ : конечный_символ + 1]
Срезы не включают явное расположение окончания строки.
Например, в приведенном выше примере string[2:5]
,
Python выведет символы с индексами 2, 3 и 4, но не символ с индексом 5.
Мы можем оставить, вместо индекса начала или окончания строки, пустоту.
Пустота на месте индекса начала будет по умолчанию равна нулю. Итак, string[:5]
выведет первые пять символов строки
string. А в случае string[5:]
, Python покажет символы, начиная с индекса 5 и до конца строки.
Если же использовать отрицательные индексы, мы получим символы с конца строки. Например, string[-2:]
--
это последние два символа.
Также существует необязательный третий аргумент, который указывает на шаг среза строки. Например, string[1:7:2]
берет каждый второй символ из строки с индексом 1, 3 и 5.