Обработка текстовой информации и файлов — тренажёр для 8 класса
8 класс • Информатика
Тренажёр по теме «Обработка текстовой информации и файлов» для 8 класса на применять встроенные методы строк Python: len(), upper(), lower(), split(), find(), replace(), обходить строку в цикле и обрабатывать отдельные символы, открывать файлы на чтение и запись с помощью функции open(). Задания соответствуют разделу «ФРП по информатике, 8 класс: Строки в Python. Методы строк. Работа с файлами: чтение и запись» федеральной рабочей программы. 15 заданий с автоматической проверкой ответов, подсказками и разбором решения. Заниматься можно бесплатно, без регистрации.
Задания в теме
Загружаем задание…
Справка
Проверено методистом
Михаил ИгнатьевУчитель высшей квалификационной категорииИсточник
[1] Примерная основная образовательная программа основного общего образования, раздел «ФРП по информатике, 8 класс: Строки в Python. Методы строк. Работа с файлами: чтение и запись», ФГОС ООО.
Что нужно уметь по этой теме
- применять встроенные методы строк Python: len(), upper(), lower(), split(), find(), replace()
- обходить строку в цикле и обрабатывать отдельные символы
- открывать файлы на чтение и запись с помощью функции open()
- читать данные из файла и записывать результат в файл
- обрабатывать строки: подсчёт символов, поиск подстроки, форматирование
Соответствие программе
Кодификатор ФИПИ: 2.6.1, 2.6.2, 2.6.3
ФРП: ФРП по информатике, 8 класс: Строки в Python. Методы строк. Работа с файлами: чтение и запись
Часы по ФРП на раздел: 7
Прогресс по этой теме: 0 верно, 0 неверно, 0 пропущено из 15 заданий.
Как разобраться в теме: полный разбор
Раздел 1 — Определение
Строка (тип str) — это упорядоченная последовательность символов в Python, предназначенная для хранения и обработки текстовой информации. Каждый символ строки имеет индекс — порядковый номер, начинающийся с нуля: в строке "текст" символ "т" имеет индекс 0, а символ "т" на конце — индекс 4.
Строки относятся к неизменяемым (иммутабельным) типам данных: ни один метод не переписывает исходную строку, а возвращает новую. Запись s.upper() сама по себе оставит s прежней — результат нужно присвоить переменной или сразу использовать.
Файл — это именованная область внешней памяти, содержимое которой программа получает как последовательность строк текста. Связка «строки + файлы» замыкает тему обработки данных: программа читает текст с диска, разбирает его методами строк и записывает результат обратно в файл.
Раздел занимает место между алгоритмами обработки массивов и задачами анализа данных: массив чисел и строка символов обходятся одинаковым циклом for, но у строки есть собственный набор методов, которого у списка нет.
Раздел 2 — Ключевые правила
Методы строк вызываются через точку от объекта строки и возвращают новое значение, не изменяя исходное.
- Длина строки — функция
len(s)возвращает целое число символов, включая пробелы и знаки препинания.len("да нет")→ 6. - Смена регистра —
s.upper()даёт версию в верхнем регистре,s.lower()— в нижнем. Применяются перед сравнением, чтобы «Питон» и «питон» считались одинаковыми. - Разбиение —
s.split(разделитель)возвращает список подстрок. Без аргумента разделителем служит любой пробельный промежуток:"а б в".split()→['а', 'б', 'в']. - Поиск —
s.find(подстрока)возвращает индекс первого вхождения либо-1, если вхождения нет. Проверкаif s.find("абв") != -1:истинна только при наличии подстроки. - Замена —
s.replace(старое, новое)заменяет все вхождения."ку-ку".replace("ку", "му")→"му-му". - Обход символов — цикл
for c in s:перебирает символы слева направо;s[i]даёт символ по индексу,s[a:b]— срез отaдоb-1. - Работа с файлом —
open(имя, режим, encoding="utf-8")открывает файл; режим"r"— чтение,"w"— запись с очисткой,"a"— дозапись в конец. Конструкцияwith open(...) as f:закрывает файл автоматически.
Раздел 3 — Разбор примеров
Пример 1. Подсчёт гласных.
``python
s = input().lower()
k = 0
for c in s:
if c in "аеёиоуыэюя":
k += 1
print(k)
Строка приводится к нижнему регистру, затем цикл for берёт по одному символу; оператор in` проверяет принадлежность символа строке-эталону. Вывод: перевод регистра до цикла избавляет от двойной проверки «а» и «А».
Пример 2. Поиск подстроки и её позиции.
``python
s = "информатика"
p = s.find("мат")
print(p) # 5
print(s.find("физ")) # -1
Метод find вернул 5 — индекс буквы «м», с которой начинается вхождение. Для отсутствующей подстроки возвращается -1, а не ошибка. Вывод: результат find всегда сравнивают с -1`, а не с нулём, поскольку 0 — законный индекс.
Пример 3. Замена и подсчёт слов.
``python
t = "мама мыла раму"
t = t.replace("а", "о")
words = t.split()
print(t, len(words)) # момо мылоροму 3
Метод replace создал новую строку, и результат пришлось присвоить обратно в t. Затем split() разбил текст по пробелам, а len списка дал количество слов. Вывод: len` работает и со строкой (символы), и со списком (элементы).
Пример 4. Чтение файла и запись результата.
``python
with open("in.txt", "r", encoding="utf-8") as f:
text = f.read()
res = f"Символов: {len(text)}; слов: {len(text.split())}"
with open("out.txt", "w", encoding="utf-8") as g:
g.write(res)
Метод read() вернул всё содержимое одной строкой; f-строка собрала отчёт с подстановкой значений в фигурные скобки; write` записал текст в новый файл. Вывод: чтение и запись всегда идут через разные объекты файла и разные режимы.
Раздел 4 — Таблица
| Средство | Что делает | Аргументы | Что возвращает | Пример → результат |
|---|---|---|---|---|
len(s) | считает символы | строка или список | целое число | len("код") → 3 |
s.upper() | переводит в верхний регистр | нет | новая строка | "да".upper() → "ДА" |
s.lower() | переводит в нижний регистр | нет | новая строка | "ДА".lower() → "да" |
s.split(d) | разбивает по разделителю | разделитель (необязателен) | список строк | "1,2".split(",") → ['1','2'] |
s.find(p) | ищет первое вхождение | подстрока | индекс или -1 | "абв".find("в") → 2 |
s.replace(a,b) | заменяет все вхождения | две строки | новая строка | "ааа".replace("а","б") → "ббб" |
f.read() | читает файл целиком | нет | одна строка | весь текст файла |
f.readlines() | читает по строкам | нет | список строк с \n | ['раз\n','два'] |
f.write(t) | записывает текст | строка | число символов | создаёт/дополняет файл |
режим "w" | открывает на запись | — | стирает прежнее содержимое | файл обнуляется |
Раздел 5 — Типичные ошибки
Потеря результата метода. Причина — представление о методах как о командах, меняющих строку на месте. Неправильно: s.upper() отдельной строкой. Правильно: s = s.upper().
Сравнение `find` с нулём. Ошибка возникает из-за смешения «не найдено» и «найдено в начале». Неправильно: if s.find("а") > 0: — пропускает вхождение с индексом 0. Правильно: if s.find("а") != -1:.
Запись числа в файл. Метод write принимает только строку, число вызывает TypeError. Неправильно: f.write(k). Правильно: f.write(str(k)).
Открытие на запись вместо дозаписи. Режим "w" очищает файл, и прежние данные исчезают. Для добавления в конец — режим "a".
Игнорирование символа перевода строки. После readlines() каждая строка оканчивается на \n, и сравнение line == "да" даёт ложь. Правильно: line.strip() == "да".
Забытая кодировка. Кириллица без encoding="utf-8" читается искажённо. Правильно: указывать кодировку в каждом open.
Раздел 6 — Пошаговый алгоритм
- Прочитайте условие и определите источник данных: клавиатура (
input()) или файл (open(..., "r")). - Загрузите текст:
f.read()для сплошной обработки,f.readlines()для построчной. - Приведите текст к единому виду:
.lower()для регистра,.strip()для лишних пробелов и\n. - Выберите способ разбора:
split()— для работы со словами, циклfor c in s— для работы с символами. - Заведите счётчики или накопители до цикла и обнулите их.
- Выполните обработку: подсчёт, поиск через
find, замену черезreplace. - Соберите ответ f-строкой:
f"Слов: {n}". - Откройте файл на запись в режиме
"w"и вызовитеwrite(str(...)). - Проверьте результат: откройте выходной файл, сверьте число символов с ручным подсчётом на коротком тесте из 2–3 слов.
Раздел 7 — Как запомнить
Формула обработки текста: «Открыл → Прочитал → Обработал → Записал → Закрыл»; конструкция with берёт на себя первый и последний шаги.
Три буквы режимов: r — read (читать), w — write (стереть и писать), a — append (дописать). Буква w — «вытирает».
Ориентир для find: «минус один — значит, не найдено». Ноль — законный адрес, минус один — отказ.
Приём для неизменяемости: методы строк работают как копировальный аппарат — оригинал остаётся на стекле, новый лист нужно забрать (s = s.replace(...)).
Частые вопросы
Что возвращает метод split()?
Список подстрок, полученных разбивкой строки по разделителю (по умолчанию — по пробелу).
Как прочитать файл в Python?
with open('файл.txt', 'r', encoding='utf-8') as f: text = f.read()
Чем отличается режим 'w' от 'a' при открытии файла?
'w' перезаписывает файл с начала (старое содержимое удаляется); 'a' добавляет данные в конец существующего файла.
Как подсчитать количество символов 'а' в строке s?
s.count('а') или циклом: sum(1 for c in s if c == 'а').