Статья Автор: Корельская Елена Юрьевна

Теория

В практике довольно часто требуется определить количество повторений символа, найти индекс его первого/последнего появления или заменить одни символ в строке на другой. В Python для этого существуют методы, их использование значительно упрощают работу со строками.
Методы строк в Питон имеет следующий синтаксис: строка.метод(параметры)

1. Метод count - подсчет частоты вхождения подстроки
p в строку s


2. Метод find - поиск индекса первого вхождения подстроки


3. Метод rfind Поиск индекса последнего вхождения подстроки


4. Метод replace - замена в строке s подстроки x на подстроку y


Рассмотрим решение ранее рассмотренных задач при помощи методов.
 
Задача Без использования метода С использованием метода
Подсчет частоты s = input()
k = 0
for x in s:
    if x == 'W':
        k += 1
print(k)
s = input()
print(n.count('W'))
Поиск индекса первого вхождения подстроки в строку s = input()
k = 0
for i in range(len(s)):
    if s[i] == 'W':
        print(i)
        break
s = input()
print(n.find('W'))
Поиск индекса последнего вхождения подстроки в строку s = input()
k = 0
for i in range(len(s)-1, -1, -1):
    if s[i] == 'W':
        print(i)
        break
s = input()
print(n.rfind('W'))
Замена символа в строке s = 'baababbab'
p = ''
for x in s:
    if x == 'a':
        p = p + 'A'
    else:
        p = p + x

s = p
print(s)
s = 'baababbab'
s = s.replace('a', '0')
print(s)

 

Существует достаточно много методов строк. Часть из них приведена в таблице ниже. Более подробно об этих и других функциях можно посмотреть в документации.
 
Операция Описание Пример
s.isdigit() 
s.isalpha() 


 
Проверка, что в строке s все символы — цифры, буквы (включая кириллические) соответственно '123'.isdigit() à True
'abc'.isalpha()à True
'33S'. isalpha()àFalse
s.islower()  
s.isupper()
Проверка, что в строке s не встречаются большие буквы, маленькие буквы.

 
'python'.islower()à True
'СТРОКА'.isupper()à True

'Данные'.islower()à False
s.lower() 
s.upper()
Строка s, в которой все символы заменены на строчные (маленькие) или заглавные (большие) 'Строчка'.lower()à 'строчка'
'python'.upper()à 'PYTHON'
s.capitalize() Делает первую букву заглавной (прописная), остальные - строчные 'hEllO'.capitalize()à 'Hello'
s.split(p) Разделяет («разрезает»)  строку s по строкам p 'один-два-один'.split('-')

С методом split мы уже встречались, например, для ввода 3 целых чисел в одной строке:
a, b, c = map(int, input().split())
Давайте разберемся как работает эта конструкция:
input() Ввод строки ’15 3 123’
input().split() «Разрезаем» строку по пробелам ’15 ’,  ’3 ’,  ’123’
map(int, input().split()) К каждой из частей применяем функцию int, то есть из строки делаем число 15, 3, 123

 
Печать