Циклы в Python: 12 задач на for, while и счётчики

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

Все фрагменты написаны для Python 3. Рассматривайте каждый отдельно: состояние переменных из одного задания не переносится в другое.

Как следить за границей и счётчиком

`range` не включает указанную конечную границу. Цикл `while` продолжает работу, пока его условие истинно; изменение переменной внутри цикла может сделать условие ложным. Описание этих конструкций есть в документации Python.

При разборе удобно записывать значение счётчика после каждого прохода. Если `print` находится после цикла, выводится только конечное значение, а не все промежуточные.

Четыре разбора суммы и количества

1. Сумма чисел из `range`

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python total = 0 for i in range(1, 5): total += i print(total)

«`

`i` последовательно принимает значения 1, 2, 3 и 4; граница 5 исключена. Сумма меняется так: 0 → 1 → 3 → 6 → 10. После цикла печатается итог.

«`text 10

«`

2. Числа с шагом два

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python for i in range(0, 7, 2): print(i)

«`

Перебор начинается с 0 и идёт с шагом 2. Значение 7 не включается; каждый вызов `print` создаёт отдельную строку.

«`text 0 2 4 6

«`

3. Подсчёт положительных элементов

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python count = 0 for x in [-2, 4, 0, 7, -1]: if x > 0: count += 1 print(count)

«`

Условию соответствуют 4 и 7. Счётчик увеличивается дважды; ноль не больше нуля.

«`text 2

«`

4. Сумма в цикле `while`

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python i = 1 total = 0 while i <= 4: total += i i += 1 print(total)

«`

При `i` от 1 до 4 числа добавляются к сумме. После четвёртого прохода `i` становится 5, условие перестаёт выполняться, и печатается накопленное значение.

«`text 10

«`

Восемь задач на проходы цикла

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

5. Выход до печати

«`python for i in range(1, 8): if i == 4: break print(i)

«`

6. Пропуск одного прохода

«`python for i in range(1, 6): if i == 3: continue print(i)

«`

7. Количество вложенных проходов

«`python count = 0 for a in range(2): for b in range(3): count += 1 print(count)

«`

8. Произведение элементов

«`python product = 1 for x in [2, 3, 4]: product *= x print(product)

«`

9. Обратный счёт в `while`

«`python i = 6 while i > 0: print(i) i -= 2

«`

10. Отрицательный шаг `range`

«`python for i in range(5, 0, -2): print(i)

«`

11. Счётчик символов

«`python total = 0 for letter in ‘зима’: total += 1 print(total)

«`

12. Сумма квадратов

«`python total = 0 for i in range(1, 4): total += i * i print(total)

«`

Ответы к задачам 5–12

5. Действие `break`

«`text 1 2 3

«`

При `i == 4` команда `break` завершает цикл до вызова `print`. Четвёрка и последующие числа не печатаются.

6. Действие `continue`

«`text 1 2 4 5

«`

При `i == 3` команда `continue` пропускает оставшуюся часть текущего прохода, включая `print`. Затем цикл продолжается со следующим значением.

7. Два вложенных перебора

«`text 6

«`

Внешний цикл проходит два раза. На каждом его проходе внутренний выполняется три раза, поэтому счётчик увеличивается 2 · 3 = 6 раз.

8. Накопление произведения

«`text 24

«`

Переменная `product` начинается с 1 и после умножений последовательно равна 2, 6 и 24. Печатается последнее значение.

9. Уменьшение до нуля

«`text 6 4 2

«`

После каждой печати `i` уменьшается на 2. После вывода 2 переменная становится равна 0, поэтому условие `i > 0` ложно и цикл заканчивается.

10. Движение с шагом −2

«`text 5 3 1

«`

Перебор идёт от 5 вниз с шагом −2. Конечная граница 0 не включается.

11. Подсчёт символов слова

«`text 4

«`

Цикл перебирает четыре символа слова «зима». На каждом проходе `total` увеличивается на 1, поэтому после цикла его значение равно 4.

12. Сложение квадратов

«`text 14

«`

`i` принимает значения 1, 2 и 3. Сумма их квадратов равна 1 + 4 + 9 = 14; это не квадрат суммы.

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