Задание №10 — Поиск слова в тексте
Определите, сколько раз в тексте повести Н. В. Гоголя «Тарас Бульба» встречается слово «красавица» или «Красавица». Другие формы слова «красавица», такие как «красавицу», «красавицей» и т. д., учитывать не следует. В случае если слово «красавица» входит в состав сложных существительных, написанных через дефис, также учесть их при подсчёте. В ответе укажите только число.
Правильный ответ
7
Пояснение
Решение:
Откроем файл с текстом повести в текстовом редакторе и воспользуемся поиском (Ctrl+F). В окне поиска вводим красавица и обязательно включаем режим «Только слово целиком» — иначе редактор посчитает и формы «красавицу», «красавицей», «красавицы», которые по условию учитывать не нужно. Флажок «Учитывать регистр» ставить не надо: подходят и «красавица», и «Красавица».
Поиск целого слова находит 6 отдельных вхождений. Кроме того, слово входит в состав сложного существительного «дочка-красавица», написанного через дефис, — по условию такие вхождения тоже учитываются. Дефис считается границей слова, поэтому это седьмое вхождение.
Итого .
Проверка программой: границей слова считаем всё, кроме русских букв, поэтому дефис границу образует, а окончания «-у», «-ей» — нет.
import re
text = open('text.txt', encoding='cp1251').read()
matches = re.findall(r'(?<![А-Яа-яЁё])[Кк]расавица(?![А-Яа-яЁё])', text)
print(len(matches)) # 7
Ответ: 7