Сумма и количество в Python: циклы и задачи для подготовки к ОГЭ
В задачах на обработку чисел легко перепутать «сколько подходящих» и «чему равна их сумма». Разберём две переменные, проследим цикл по строкам и составим программу, которая читает данные с клавиатуры.
Сразу к самопроверкеДве переменные — два разных вопроса
В наборе 4, −3, 8, 5, 0 два положительных чётных числа: 4 и 8. Их количество — 2, а сумма — 12. Ноль чётный, но не положительный, поэтому не подходит.
k— количество: при подходящем числе прибавляем 1.s— сумма: при подходящем числе прибавляем само число.
ПРОСЛЕДИТЕ ИЗМЕНЕНИЕ ПЕРЕМЕННЫХ
Перебираем числа от 1 до n включительно. Считаем и складываем только чётные.
| i | Чётное? | Количество k | Сумма s |
|---|---|---|---|
| 1 | нет | 0 | 0 |
| 2 | да | 1 | 2 |
| 3 | нет | 1 | 2 |
| 4 | да | 2 | 6 |
| 5 | нет | 2 | 6 |
| 6 | да | 3 | 12 |
Количество: 3. Сумма: 12.
Строка показывает состояние после обработки числа i. Без JavaScript доступна таблица для n = 6.
Цикл с условием: от 1 до n
Начнём с учебного примера: считаем количество и сумму чётных чисел от 1 до n включительно. Для n = 6 подходят 2, 4 и 6: количество 3, сумма 12.
n = 6
k = 0
s = 0
for i in range(1, n + 1):
if i % 2 == 0:
k += 1
s += i
print(k, s) # 3 12Правая граница range не включается, поэтому написано n + 1. Если забыть единицу, число n не будет обработано. Подробности — в разборе range и ввода.
Как читать таблицу выполнения
Одна строка таблицы — один проход цикла. В ней записано состояние переменных после проверки текущего числа.
- До цикла k = 0 и s = 0.
- На i = 1 условие ложно: ничего не меняется.
- На i = 2 условие истинно: k становится 1, s становится 2.
- На i = 3 снова ничего не меняется.
- На i = 4 получаем k = 2, s = 6.
Продолжите таблицу сами для n = 8, затем проверьте её в схеме выше. Такая проверка помогает найти ошибку раньше, чем запуск на большом наборе данных.
Если числа вводят с клавиатуры
Теперь другой авторский пример. Сначала вводится количество n, затем n целых чисел — каждое с новой строки. Нужно посчитать и сложить положительные чётные числа.
n = int(input())
k = 0
s = 0
for _ in range(n):
x = int(input())
if x > 0 and x % 2 == 0:
k += 1
s += x
print(k, s)Пример ввода:
5
4
-3
8
5
0Вывод: 2 12. Цикл выполняется n раз; переменная x — очередное введённое число. Не подставляйте номер прохода вместо x.
Если по условию все числа находятся в одной строке, ввод будет другим: numbers = list(map(int, input().split())), затем for x in numbers:. Читайте формат входных данных.
Почему отступы меняют ответ
| Где строка | Что произойдёт |
|---|---|
| k = 0 и s = 0 до цикла | Переменные сохраняют накопленный результат. |
| k = 0 и s = 0 внутри цикла | Результат стирается на каждом проходе. |
| k += 1 внутри if | Считаются только подходящие числа. |
| k += 1 снаружи if, но в цикле | Считаются все обработанные числа. |
| print после цикла | Выводится один окончательный результат. |
Полезно проговорить: «для каждого числа, если оно подходит, увеличиваем количество и сумму». Вложенность этих действий должна быть видна по отступам.
Проверка на трёх маленьких наборах
Для программы с положительными чётными числами проверьте разные случаи:
- Ни одно не подходит: −2, 0, 3 → количество 0, сумма 0.
- Все подходят: 2, 4, 8 → количество 3, сумма 14.
- Смешанный набор: 4, −3, 8, 5, 0 → количество 2, сумма 12.
Если программа работает только на одном примере, это ещё не доказывает правильность. Проверьте также один элемент и повторяющиеся значения: каждое вхождение обрабатывается отдельно.
Что повторить и где потренироваться
Запустите пример в Python онлайн, измените условие на «число делится на 3» и сначала вручную предскажите ответ. Следующий шаг — задачи на чтение кода.
Поведение цикла и диапазона описано в официальном учебнике Python. Формат экзамена проверяйте в материалах ФИПИ по ОГЭ. Здесь приведены авторские учебные задачи, а не официальный вариант.
Проверьте себя
Сначала решите самостоятельно. Затем проверьте ответ или откройте объяснение.
Ответ и объяснение
2. Подходят 4 и 8. Ноль не положительный.
Ответ и объяснение
12. 4 + 8 = 12.
Ответ и объяснение
4. Подходят 2, 4, 6, 8: четыре числа.
Ответ и объяснение
20. 2 + 4 + 6 + 8 = 20.
Ответ и объяснение
5. Значения i: 1, 2, 3, 4, 5. Граница 6 не входит.
Ответ и объяснение
0. Подходящих чисел нет, поэтому исходное s = 0 остаётся неизменным.