a = [14, -5, 9, 22, -11, 7, -23, 16]
b = []
count = 0
for num in a:
if num % 2 == 0:
b.append(num)
count += 1
sum_b = 0
for i in range(count):
sum_b += b[i]
sum_b //= 2
print(sum_b)
Вывод программы: 26
Пошаговое разбор по коду
1) Исходные данные
- a = [14, -5, 9, 22, -11, 7, -23, 16]
- b = [] и count = 0 — пустые начальные списки и счётчик.
2) Первый цикл: собираем чётные числа из a в b и считаем их
- num = 14: 14 % 2 == 0, значит чётное. Добавляем в b → b = [14], и увеличиваем count → count = 1.
- num = -5: -5 % 2 != 0 (в языке Python остаток от деления с учётом знака делителя 2 — не ноль), пропускаем.
- num = 9: нечётное, пропускаем.
- num = 22: 22 % 2 == 0, добавляем → b = [14, 22], count = 2.
- num = -11: нечётное, пропускаем.
- num = 7: нечётное, пропускаем.
- num = -23: нечётное, пропускаем.
- num = 16: 16 % 2 == 0, добавляем → b = [14, 22, 16], count = 3.
Итого: все чётные числа из a — 14, 22, 16. Их стало в b три элемента, count = 3.
3) Второй цикл: суммируем первые count элементов массива b
- Начальное sum_b = 0.
- i = 0: sum_b += b[0] → sum_b = 14.
- i = 1: sum_b += b[1] → sum_b = 36.
- i = 2: sum_b += b[2] → sum_b = 52.
После цикла sum_b = 52.
4) Деление суммы на 2 целочисленно
- sum_b //= 2 → 52 // 2 = 26.
5) Вывод
- print(sum_b) выводит 26.
Итак, программа вычисляет сумму чётных элементов списка a (14 + 22 + 16 = 52) и возвращает половину этой суммы в виде целого числа: 26.
Дополнительная заметка (для понимания и упрощения)
- Можно переписать задачу короче, без промежуточного массива b и счётчика, например так:
total_evens = sum(x for x in a if x % 2 == 0)
print(total_evens // 2)
- Но ваш код сохраняет чётные элементы в массиве и считает их количество, что по сути даёт ту же итоговую величину.