Глава 8 · Играем с буквами и словами

Методы строк: поиск и разбор

Заменяем подстроки, разбиваем строку на части и снова склеиваем — а ещё ищем подстроки внутри текста.

replace() — замена подстроки

replace.py
text = "я люблю Java"
print(text.replace("Java", "Python"))   # я люблю Python
Исходная строка"я люблю Java".replace(...)"Java" → "Python"Результат"я люблю Python"
text.replace("Java", "Python") — заменяет ВСЕ вхождения подстроки

split() — разбить строку на части

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

split.py
sentence = "кот  и пёс"
words = sentence.split()
print(words)          # ['кот', 'и', 'пёс']
print(len(words))     # 3 слова
Исходная строка"кот и пёс".split()разбить по пробеламСписок слов['кот', 'и', 'пёс']
split() превращает строку в список слов (со списками подробно познакомимся в главе 10)

Можно указать свой разделитель — например, запятую:

split_razdelitel.py
csv_row = "Ада,28,программист"
fields = csv_row.split(",")
print(fields)          # ['Ада', '28', 'программист']

join() — обратная операция: склеить список в строку

join.py
words = ["кот", "и", "пёс"]
result = "-".join(words)
print(result)          # кот-и-пёс
Список слов['кот', 'и', 'пёс']"-".join(...)склеить через дефисСтрока"кот-и-пёс"
join() — действие, обратное split(): склеивает список обратно в строку

count() — сколько раз встречается

count.py
text = "миссисипи"
print(text.count("с"))     # 4
print(text.count("си"))    # 2

find() и index() — где встречается

Оба метода ищут подстроку и возвращают индекс её первого символа. Разница — в поведении, когда подстрока не найдена:

find_i_index.py
text = "Python"
print(text.find("th"))     # 2 — нашли, начинается с индекса 2
print(text.find("zz"))     # -1 — не нашли, find() возвращает -1

print(text.index("th"))    # 2 — то же самое, что find(), если найдено
# text.index("zz")         # ValueError: substring not found — index() «падает» с ошибкой!
Когда что выбрать
Если подстроки может не оказаться в тексте — используйте find() и проверяйте результат на -1. Если вы уверены, что подстрока обязана быть (и хотите узнать сразу, если это не так), — index() сообщит об ошибке явно, а не тихо вернёт -1.

startswith() и endswith()

startswith_endswith.py
filename = "otchet_2026.pdf"
print(filename.startswith("otchet"))   # True
print(filename.endswith(".pdf"))       # True
print(filename.endswith(".docx"))      # False
★★ Самостоятельная задача
Разбираем имя файла

Для строки «report_final_v2.pdf» проверьте endswith(".pdf"), найдите позицию символа «_» методом find(), и через split("_") получите список частей имени.

Практика: поиск и разбор строк
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →