Метод — это функция, применяемая к объекту, в данном случае — к строке.
Метод вызывается в виде Имя_объекта.Имя_метода(параметры).
Например, S.find("e") — это применение к строке S
метода find с одним параметром "e".
Метод find и rfind
Метод find находит в данной строке (к которой применяется метод)
данную подстроку (которая передается в качестве параметра).
Функция возвращает индекс первого вхождения искомой подстроки.
Если же подстрока не найдена, то метод возвращает значение -1. Например:
>>> S = 'Hello'>>> print(S.find('e'))1>>> print(S.find('ll'))2>>> print(S.find('L'))-1 |
Аналогично, метод rfind возвращает индекс последнего вхождения
данной строки (“поиск справа”).
>>> S = 'Hello'>>> print(S.find('l'))2>>> print(S.rfind('l'))3 |
Если вызвать метод find с тремя параметрами
S.find(T, a, b), то поиск будет осуществляться
в срезе S[a:b]. Если указать только два параметра
S.find(T, a), то поиск будет осуществляться
в срезе S[a:], то есть начиная с символа с индексом
a и до конца строки. Метод S.find(T, a, b)
возращает индекс в строке S, а не индекс относительно
начала среза.
Метод replace
Метод replace заменяет все вхождения одной строки на другую. Формат:
S.replace(old, new) — заменить в строке S
все вхождения подстроки old на подстроку new. Пример:
>>> 'Hello'.replace('l', 'L')'HeLLo' |
Если методу replace задать еще один параметр: S.replace(old, new, count),
то заменены будут не все вхождения, а только не больше, чем первые count из них.
>>> 'Abrakadabra'.replace('a', 'A', 2)'AbrAkAdabra' |
Метод count
Подсчитывает количество вхождений одной строки в другую строку. Простейшая
форма вызова S.count(T) возвращает число вхождений строки
T внутри строки S. При этом подсчитываются только
непересекающиеся вхождения, например:
>>> 'Abracadabra'.count('a')4>>> ('a' * 100000).count('aa')50000 |
При указании трех параметров ,
будет выполнен подсчет числа вхождений строки T
в срез S[a:b].
Методы startswith и endswith, проверка наличия подстроки
В тех случаях, когда нужно проверить, что строка начинается или заканчивается некоторой подстрокой,
то вместо срезов принято использовать методы startswith и endswith:
>>> 'Abracadabra'.startswith('Ab')True>>> 'Abracadabra'.endswith('BRA')False |
Для проверки наличия подстроки кроме метода find можно использовать простую конструкцию:
>>> 'acad' in 'Abracadabra'True |