Метод — это функция, применяемая к объекту, в данном случае — к строке.
Метод вызывается в виде Имя_объекта.Имя_метода(параметры)
.
Например, 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 |