ЕГЭ · Информатика

Строки и работа с текстом: подготовка к ЕГЭ по информатике

Тема 'Строки и работа с текстом' — одна из ключевых в ЕГЭ по информатике. Она встречается как в заданиях на программирование (например, №24, №25), так и в теоретических вопросах. Умение обрабатывать строки необходимо для решения задач на анализ текста, поиск подстрок, замену символов и работу с регулярными выражениями.

В этой статье мы систематизируем знания по теме: разберём индексацию и срезы, основные методы строк, подсчёт символов и регулярные выражения. Каждый раздел сопровождается примерами задач уровня ЕГЭ с полным решением.

Материал рассчитан на учеников 10-11 классов, которые готовятся к экзамену. Если вы только начинаете изучение Python, рекомендую сначала освоить базовые типы данных и циклы.

🧑‍🏫
Разберём эту тему вместе

Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.

Индексация и срезы строк

В Python строки — это упорядоченные последовательности символов. Каждый символ имеет индекс: положительный (начиная с 0 слева) и отрицательный (начиная с -1 справа). Срезы позволяют извлекать подстроки: s[start:stop:step].

Важно помнить: при срезе элемент с индексом stop не включается. Если step отрицательный, строка обходится справа налево. Эти операции активно используются в задачах ЕГЭ, особенно при анализе текстовых данных.

Пример 1
Условие.

Дана строка s = 'abcdef'. Требуется получить подстроку 'cde' с помощью среза. Запишите срез.

Решение.

Шаг 1: Определяем индексы. Символ 'c' имеет индекс 2, 'd' — 3, 'e' — 4. Нужно включить символы с индекса 2 по 4 включительно. Шаг 2: Записываем срез s[2:5] (stop=5, так как элемент с индексом 5 не включается). Результат: 'cde'.

Пример 2
Условие.

Дана строка s = '123456789'. Получите подстроку '97531' с помощью среза с отрицательным шагом.

Решение.

Шаг 1: Нужны символы с индексами 8,6,4,2,0 (если считать с нуля). Шаг 2: Срез с начала до конца с шагом -2: s[::-2]. Проверка: s[8]='9', s[6]='7', s[4]='5', s[2]='3', s[0]='1'. Результат: '97531'.

Методы строк: split, join, replace, upper, lower

Методы строк — это встроенные функции, которые позволяют преобразовывать и анализировать текст. На ЕГЭ чаще всего используются:
- split(sep) — разбивает строку по разделителю и возвращает список.
- join(iterable) — объединяет элементы списка в строку с заданным разделителем.
- replace(old, new) — заменяет все вхождения подстроки old на new.
- upper() и lower() — преобразуют строку к верхнему или нижнему регистру.

Эти методы экономят время и упрощают код. Важно не путать split и join: split создаёт список из строки, join — наоборот.

Пример 1
Условие.

Дана строка s = 'один, два, три, четыре'. Получите строку 'один-два-три-четыре' (замените запятые на дефисы, уберите пробелы).

Решение.

Шаг 1: Используем replace для замены запятых на дефисы: s = s.replace(', ', '-'). Шаг 2: Проверяем результат: 'один-два-три-четыре'. Альтернативное решение: split по ', ', затем join с '-': '-'.join(s.split(', ')).

Пример 2
Условие.

В строке s = 'Hello World! How are you?' подсчитайте количество слов (слова разделены пробелами).

Решение.

Шаг 1: Используем split() без аргументов — разбивает по любым пробельным символам. Получаем список слов: ['Hello', 'World!', 'How', 'are', 'you?'] Шаг 2: Длина списка — количество слов: len(s.split()). Ответ: 5.

Подсчёт символов и анализ текста

Часто в задачах ЕГЭ требуется подсчитать количество определённых символов, букв или цифр в строке. Для этого используются циклы, метод count() или условные конструкции.

Метод count(sub) возвращает количество непересекающихся вхождений подстроки sub. Также можно использовать генераторы списков или Counter из модуля collections.

Примеры: найти самую частую букву, проверить, является ли строка палиндромом, удалить все цифры из строки.

Пример 1
Условие.

Дана строка s = 'abracadabra'. Найдите символ, который встречается чаще всего. Если таких несколько, выведите любой.

Решение.

Шаг 1: Создаём словарь для подсчёта. Проходим по каждому символу: for ch in s: count[ch] = count.get(ch, 0) + 1. Шаг 2: Находим максимум: max(count, key=count.get). Результат: 'a' (встречается 5 раз). Можно также использовать Counter: from collections import Counter; Counter(s).most_common(1)[0][0].

Пример 2
Условие.

Проверьте, является ли строка s = 'А роза упала на лапу Азора' палиндромом (без учёта пробелов и регистра).

Решение.

Шаг 1: Удаляем пробелы и приводим к нижнему регистру: cleaned = s.replace(' ', '').lower(). Шаг 2: Сравниваем строку с её перевёрнутой версией: cleaned == cleaned[::-1]. Результат: True (строка является палиндромом).

Регулярные выражения (базовый уровень)

Регулярные выражения — мощный инструмент для поиска и замены текста по шаблону. В ЕГЭ они могут использоваться в заданиях на обработку текстовых файлов. Модуль re в Python позволяет работать с регулярками.

Основные функции: re.search(), re.findall(), re.sub(). Символы: . (любой символ), * (0 или более), + (1 или более), ? (0 или 1), \d (цифра), \w (буква, цифра, подчёркивание), [] (набор символов).

Важно: не пытайтесь выучить все возможности — достаточно базовых шаблонов для типовых задач ЕГЭ.

Пример 1
Условие.

Из строки s = 'Цена: 1500 руб., скидка 10%' извлеките все числа (целые).

Решение.

Шаг 1: Импортируем re. Шаг 2: Используем re.findall(r'\d+', s). Шаг 3: Получаем список ['1500', '10']. Если нужно целыми числами, преобразуем: list(map(int, result)).

Пример 2
Условие.

В строке s = 'email: test@example.com, phone: +7-123-456-78-90' найдите email-адрес.

Решение.

Шаг 1: Шаблон для email: r'[\w.]+@[\w.]+'. Шаг 2: re.search(r'[\w.]+@[\w.]+', s).group() -> 'test@example.com'. Важно: простой шаблон не учитывает все возможные домены, но для ЕГЭ достаточно.

Типичные ошибки и советы по подготовке

На ЕГЭ по информатике часто допускают следующие ошибки при работе со строками:
- Забывают, что строки неизменяемы (immutable). Методы строк возвращают новую строку, не изменяя исходную.
- Путают split и join, особенно при работе с разделителями.
- Не учитывают регистр при сравнении строк.
- Ошибаются в индексах срезов, особенно с отрицательными индексами.

Советы:
- Регулярно решайте задачи №24 (обработка строк) и №25 (поиск подстрок).
- Используйте встроенные методы строк — они оптимизированы и читаемы.
- Для сложных шаблонов применяйте регулярные выражения, но не злоупотребляйте.
- Если тема вызывает трудности, попробуйте разобрать её с AI-репетитором, например, Наставником, который объяснит тему в диалоге и даст практические задания.

Частые вопросы

Какие методы строк нужно знать для ЕГЭ по информатике?
Основные: split, join, replace, upper, lower, strip, find, count, isdigit, isalpha. Также полезны startswith, endswith, capitalize. Регулярные выражения — дополнительно, но могут упростить решение.
Как подсчитать количество символов в строке на Python?
Используйте len(s) — возвращает общее количество символов. Для подсчёта конкретного символа — s.count('a'). Для подсчёта по условию — генератор списка: sum(1 for ch in s if ch.isdigit()).
Что такое срез строки и как его использовать?
Срез — это извлечение подстроки: s[start:stop:step]. start — начальный индекс (включительно), stop — конечный (не включительно), step — шаг. Если не указать, start=0, stop=len(s), step=1. Отрицательный step позволяет обходить строку справа налево.
Как решать задание 24 ЕГЭ по информатике на строки?
Задание 24 часто требует найти длину максимальной последовательности, удовлетворяющей условию (например, из неповторяющихся символов). Решение: проходите по строке, поддерживая текущую последовательность, обновляйте максимум. Используйте срезы или методы строк для проверки.
Нужно ли учить регулярные выражения для ЕГЭ?
Да, но на базовом уровне. Достаточно знать \d, \w, ., *, +, ?, [], ^, $. В задачах часто требуется найти числа, слова или email-адреса. Регулярки экономят время, но можно обойтись и циклами.
Где можно потренироваться решать задачи на строки?
На платформах РешуЕГЭ, Codeforces, LeetCode (easy/medium). Также полезен сайт pythontutor.ru для визуализации. Если нужен разбор с наставником, попробуйте Наставника AI — он объяснит тему и поможет с заданиями.
🧑‍🏫
Разберём эту тему вместе

Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.

Строки и работа с текстом в ЕГЭ по информатике: разбор темы