Python

Python для задания ЕГЭ по информатике: как писать код

Такие задачи нужны не для красивого конспекта, а для перехода от «я понял объяснение» к «я могу написать код сам». Перед каждой задачей сначала выпишите входные данные, ожидаемый результат и прием, который должен сработать: условие, цикл, список, словарь, функция или проверка строки

В этом наборе главный фокус — писать короткий проверяемый код для типовых задач ЕГЭ и не терять баллы из-за невнимательности. Не открывайте решение мгновенно. Дайте себе несколько минут на черновик: можно написать план словами, сделать переменные, запустить неполный вариант и посмотреть ошибку. Так обучение становится честным: видно, где именно не хватает понимания

Что повторить перед решением

Перед практикой освежите:

  • целочисленное деление
  • остаток от деления
  • циклы по диапазону
  • строки
  • счетчики
  • работа с файлами

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

Задачи с решениями

Задача 1: Перебор делителей

Найти числа на отрезке, у которых ровно четыре делителя

Вариант решения:

for number in range(1000, 1101):
    divisors = []
    for d in range(1, number + 1):
        if number % d == 0:
            divisors.append(d)
    if len(divisors) == 4:
        print(number, divisors)

Проверьте решение на другом наборе данных и проговорите, какая строка делает главное действие

Задача 2: Счетчик по условию

Посчитать числа, которые делятся на 3, но не делятся на 9

Вариант решения:

count = 0
for number in range(1, 1000):
    if number % 3 == 0 and number % 9 != 0:
        count += 1
print(count)

Проверьте решение на другом наборе данных и проговорите, какая строка делает главное действие

Задача 3: Работа со строкой

Посчитать пары соседних символов AB

Вариант решения:

text = 'ABCAABAB'
count = 0

for i in range(len(text) - 1):
    if text[i] == 'A' and text[i + 1] == 'B':
        count += 1

print(count)

Проверьте решение на другом наборе данных и проговорите, какая строка делает главное действие

Задача 4: Минимум по условию

Найти минимальное число, которое подходит под несколько условий

Вариант решения:

answer = None
for number in range(1, 10000):
    if number % 7 == 0 and number % 5 != 0:
        answer = number
        break
print(answer)

Проверьте решение на другом наборе данных и проговорите, какая строка делает главное действие

Задача 5: Файл с числами

Прочитать числа из файла и найти сумму положительных

Вариант решения:

with open('numbers.txt', encoding='utf-8') as file:
    numbers = [int(line) for line in file]

print(sum(number for number in numbers if number > 0))

Проверьте решение на другом наборе данных и проговорите, какая строка делает главное действие

Задача 6: Проверка алгоритма на малых данных

Перед большим диапазоном проверить идею на коротком отрезке

Вариант решения:

for number in range(1, 21):
    print(number, number % 4 == 0, number % 6 == 0)

Проверьте решение на другом наборе данных и проговорите, какая строка делает главное действие

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Как разбирать готовое решение

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

Если код не вспоминается, не ругайте себя. Найдите точное место: забыли синтаксис while, условие выхода, обновление счетчика, работу со списком, проверку деления, формат вывода. Конкретная проблема чинится быстрее, чем общее ощущение «я ничего не понимаю»

Как усложнять задачи

После рабочего решения добавьте одно изменение:

  • пустой ввод или пустой список;
  • отрицательное число;
  • повторяющиеся значения;
  • строку с пробелами;
  • очень маленькое значение;
  • значение, которого нет в данных;
  • несколько одинаковых максимумов или минимумов

Одно изменение за раз помогает видеть причину. Если поменять сразу всё, трудно понять, какая правка сломала код

Частые ошибки

  • не выписать условие отбора
  • путать диапазон включительно и не включительно
  • не проверить маленькие значения
  • сразу писать длинную программу без промежуточного вывода

Еще одна частая ошибка — думать, что задача решена, если программа один раз вывела правильный ответ. Надежнее проверить обычный пример, крайний пример и пример, где результат должен быть пустым или нулевым

План на неделю

  1. День первый: решить 3 простые задачи руками
  2. День второй: переписать их без подсказки
  3. День третий: добавить неудобные данные
  4. День четвертый: вынести повторяющуюся логику в функцию
  5. День пятый: решить похожую задачу с новым условием
  6. День шестой: разобрать две ошибки из старых попыток
  7. День седьмой: выбрать одну задачу и объяснить решение вслух

Такой режим не требует много времени, но быстро показывает реальный прогресс

Чек-лист

  • Условие задачи понятно
  • Входные данные выписаны
  • Решение сначала описано словами
  • Код запущен
  • Проверен обычный пример
  • Проверен неудобный пример
  • Ошибка разобрана, а не стерта
  • Ответ переписан без подсказки
  • Понятно, какую тему задача тренирует

Как превратить набор задач в навык

Полезно работать не количеством, а качеством попыток. Одна задача считается разобранной только тогда, когда вы можете написать решение без подсказки, изменить входные данные и объяснить, почему результат именно такой

Фокус этого набора: писать короткий проверяемый код для типовых задач ЕГЭ и не терять баллы из-за невнимательности. Поэтому после каждого решения не закрывайте файл сразу. Оставьте рядом три маленькие проверки: обычный пример, неудобный пример и пример, где результат должен быть пустым, нулевым или минимальным

Разбор условия

Перед кодом напишите короткую заготовку:

Что дано:
Что нужно получить:
Какие ограничения есть:
Какой прием нужен:
Что проверить отдельно:

Такая заготовка особенно помогает новичкам. Когда условие кажется понятным, мозг часто пропускает важные детали: включается ли граница диапазона, можно ли получить пустой список, что делать с нулем, сколько раз должен выполниться цикл, нужно ли менять исходные данные

Контрольные данные

Для каждой задачи придумайте минимум три проверки:

  • простой случай, где ответ видно глазами;
  • крайний случай: ноль, пустая строка, один элемент или минимальный диапазон;
  • неудобный случай: повторы, отрицательные числа, пробелы, одинаковые максимумы

Если решение проходит только простой случай, оно пока не готово. Часто ошибка проявляется именно на краях: цикл не выполняется ни разу, счетчик не обновляется, индекс выходит за пределы, условие срабатывает на одну итерацию раньше

Как работать с ошибкой

Не стирайте ошибку сразу. Запишите ее коротко: тип, строка, причина, исправление. Например: IndexError — вышли за границу списка; ValueError — ввели не число; NameError — переменная не создана; TypeError — операция применена не к тому типу

Через несколько таких заметок станет видно, какие ошибки повторяются. Это намного полезнее, чем просто решить следующую задачу и забыть, где была проблема

Повтор без подсказки

На следующий день вернитесь к двум задачам и решите их заново без готового ответа. Если решение получается быстрее и чище, тема закрепляется. Если снова приходится смотреть подсказку, значит, нужно уменьшить задачу: оставить только цикл, только условие, только список или только ввод

Такой повтор не выглядит эффектно, зато он честно показывает прогресс. Новичку важнее научиться уверенно писать маленькие программы, чем один раз разобрать большой пример рядом с ответом

Что улучшать после первого решения

После рабочего кода можно добавить:

  • понятные имена переменных;
  • отдельную функцию;
  • проверку пустых данных;
  • вывод промежуточных значений;
  • несколько тестовых наборов;
  • комментарий к сложному условию

Не нужно украшать каждую задачу. Достаточно выбрать одну-две и довести до аккуратного состояния

Больше задач для самостоятельной тренировки

Полезно добавить второй круг практики. Первый круг показывает синтаксис, второй заставляет думать. Возьмите уже решенные задачи и поменяйте условия так, чтобы готовый ответ нельзя было вставить без изменений

Например, если задача считала сумму, добавьте фильтр. Если был цикл до нуля, добавьте счетчик попыток. Если была проверка числа, добавьте обработку неправильного ввода. Если была строка, добавьте пробелы и разный регистр. Так один прием начинает работать в разных условиях

Как писать решение словами

Перед кодом составьте алгоритм из коротких фраз:

создать переменную для результата
прочитать первое значение
пока условие выполняется
    обновить результат
    прочитать следующее значение
вывести результат

Такой черновик особенно полезен, когда вы не знаете, с чего начать. Код становится переводом плана на Python, а не прыжком в пустоту. Если план не получается написать словами, значит, условие еще не разобрано

Набор дополнительных задач

Попробуйте решить без готовых ответов:

  1. Прочитать числа до пустой строки и вывести их количество
  2. Найти минимальное положительное число в списке
  3. Посчитать, сколько слов длиннее пяти символов
  4. Проверить, что пароль содержит хотя бы одну цифру
  5. Удалить из списка все пустые строки
  6. Найти первое число, которое делится на два заданных делителя
  7. Сформировать список квадратов только для четных чисел
  8. Посчитать частоту каждой буквы в строке
  9. Преобразовать список строк в список чисел и пропустить ошибочные значения
  10. Написать функцию и проверить ее на трех наборах данных

Не обязательно решать всё за один раз. Лучше взять три задачи и подробно проверить каждую

Как проверять без тестовой библиотеки

На старте достаточно простых вызовов:

print(solution([1, 2, 3]))
print(solution([]))
print(solution([0, -1, 5]))

Если решение не оформлено как функция, можно временно заменить ввод готовыми данными. Это ускоряет проверку: не нужно каждый раз печатать одно и то же руками

Когда нужна функция

Функция помогает отделить логику от ввода и вывода. В задачах для начинающих часто пишут всё подряд, но уже через несколько упражнений становится неудобно проверять. Если вынести основное действие в функцию, ее можно вызвать несколько раз с разными данными

Пример:

def count_positive(numbers):
    count = 0
    for number in numbers:
        if number > 0:
            count += 1
    return count

print(count_positive([1, -2, 3]))
print(count_positive([]))

Даже если на экзамене или в простой задаче функция не обязательна, такой способ хорошо тренирует мышление

Что считать хорошим решением

Хорошее решение не обязано быть самым коротким. Для новичка важнее другое:

  • понятные имена переменных;
  • нет лишней магии;
  • каждый шаг можно объяснить;
  • есть проверка крайних данных;
  • ошибка не спрятана молча;
  • результат соответствует условию;
  • код можно переписать через день

Короткая запись станет полезной позже, когда базовая логика уже уверенная. На первом этапе явный код часто лучше

Как не застревать

Если задача не идет, уменьшите ее. Вместо всей программы напишите только цикл. Вместо цикла по списку проверьте один элемент. Вместо сложного условия выведите промежуточные значения. Такой метод возвращает контроль: вы снова видите, что именно происходит

После решения запишите одну фразу: «Я ошибся в…» или «Главная идея была…». Эти фразы быстро превращаются в личный справочник по ошибкам

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x