Чтобы предсказать вывод цикла, проследите значения переменных по итерациям и отметьте, где стоит `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; это не квадрат суммы.
Если ребёнку нужны другие способы познакомиться с кодом, посмотрите статью «Как научить ребёнка программированию бесплатно».