📖 Содержание
Часть 1: Мир программирования вокруг нас
Часть 2: Алфавит и словарь программирования
Часть 3: Строим первые программы
Часть 4: Наш удивительный мозг
Часть 5: Творческие проекты
Часть 6: Программирование в реальном мире
Глава 8 из 27
2: Алфавит и словарь программирования
Закрепи главу в Практике
Глава 8: циклы — карточки
Интервальное повторение по этой главе
Войдите, чтобы заниматься
Глава 8: "Циклы: карусель повторений"
Был солнечный день, и Профессор Бит предложил Алисе посетить парк аттракционов. Когда они подошли к карусели, Алиса с восторгом наблюдала, как она кружится снова и снова.
— Смотри, карусель! — воскликнула Алиса. — Она всё время повторяет одно и то же движение.
— Отличное наблюдение! — кивнул Профессор. — И это прекрасный пример того, что в программировании называется циклом.
— Циклом? — переспросила Алиса.
— Да, цикл — это команда, которая заставляет компьютер повторять определённые действия несколько раз или до выполнения определённого условия, — объяснил Профессор. — Представь, что тебе нужно написать программу, которая выводит на экран числа от 1 до 5.
Профессор достал свой планшет и показал два варианта кода:
python
Без использования цикла
print(1)
print(2)
print(3)
print(4)
print(5)С использованием цикла
for i in range(1, 6):
print(i)— Оба варианта делают одно и то же, — пояснил он, — но с циклом код короче и его легче изменить. Например, если нам понадобится вывести числа от 1 до 100, во втором случае нужно просто изменить одно число.
Байт радостно подпрыгнул:
— Циклы очень полезны, когда нужно повторить одно действие много раз!
Алиса, Профессор и Байт сели на скамейку с мороженым, любуясь парком. Логик, присоединившаяся к компании, задумчиво произнесла:
— В природе мы тоже видим множество циклов. Смена дня и ночи, времён года, фазы Луны — всё это природные программы.
Профессор кивнул и негромко прочитал:
Толпятся льдины в берегах,
Освобождаясь от запрета.
Весна зелёным на снегах
Дорожек сеть плетёт для лета.
За летом осень разнесёт
По свету запах урожая.
Мир нескончаемо течёт,
Живые циклы совершая.
Вращает время карусель,
Бока планеты солнцем греет,
Меняя звёздную постель,
И холод делая теплее.
Тот бесконечный алгоритм
Даёт энергию машине,
Покорный код чеканит ритм,
Сменяет следствием причины.
Струится времени поток,
По лабиринтам дней стекая.
За «если» непременно «то»
Произойдёт, не иссякая!
— А какие циклы бывают в программировании? — поинтересовалась Алиса, дослушав стихотворение.
— Есть два основных типа циклов, — ответил Профессор. — Цикл с заданным числом повторений и цикл с условием.
Он показал на планшете:
python
Цикл с заданным числом повторений (for)
for i in range(5): # Повторить 5 раз
print("Это выполнится 5 раз")Цикл с условием (while)
count = 0
while count < 5: # Выполнять, пока count меньше 5
print("Это тоже выполнится 5 раз")
count = count + 1
— В первом случае, — пояснил Профессор, — мы сразу указываем, сколько раз нужно повторить действие. Во втором — задаём условие, при котором цикл должен продолжаться.
— Как на карусели! — догадалась Алиса. — Она крутится определённое количество кругов, а потом останавливается.

— Именно! — подтвердил Профессор. — А вот дождь идёт, пока не закончатся дождевые облака — это пример цикла с условием.
Байт показал на своём экране мультяшного человечка:
— Смотри, я могу заставить его двигаться с помощью цикла:
python
for шаг in range(10):
продвинуться_вперёд() if шаг % 2 == 0: # Если номер шага чётный
поднять_руку()
else:
опустить_руку()
— Видишь, — продолжил Профессор, — внутри цикла могут быть разные команды, включая условия. Это позволяет создавать сложные алгоритмы.
Когда они проходили мимо автомата с игрушками, Алиса остановилась:
— Смотрите, мальчик пытается достать игрушку. Он уже третий раз бросает монетку.
— Это похоже на цикл while, — заметил Профессор. — Он будет повторять попытки, пока не достанет игрушку или пока не закончатся монетки. В программировании это могло бы выглядеть так:
python
монетки = 5
игрушка_получена = Falsewhile монетки > 0 and not игрушка_получена:
игрушкаполучена = попыткадостать_игрушку()
монетки = монетки - 1
if игрушка_получена:
print("Ура! Получилось!")
else:
print("Увы, монетки закончились...")
— А что значит шаг % 2 == 0 в примере с человечком? — спросила Алиса.
— Символ % — это операция "модуль" или остаток от деления, — объяснил Профессор. — шаг % 2 даёт остаток от деления переменной шаг на 2. Если остаток равен нулю, значит, число чётное.
Байт дополнил:
— Эта проверка позволяет сделать разные действия для чётных и нечётных шагов. На чётных шагах мы поднимаем руку, на нечётных — опускаем. Так получается, что человечек машет рукой во время движения.
— Циклы могут быть и вложенными, — добавил Профессор. — То есть, внутри одного цикла может находиться другой.
python
Таблица умножения
for i in range(1, 11):
for j in range(1, 11):
print(i, "x", j, "=", i * j)
print("---") # Разделитель между строками таблицы
— Здесь внешний цикл перебирает числа от 1 до 10, а для каждого такого числа внутренний цикл тоже перебирает числа от 1 до 10, — пояснил он. — Так получается полная таблица умножения.
— А что будет, если цикл никогда не закончится? — спросила Алиса.
— Это называется "бесконечный цикл", — ответила Логик. — В таком случае программа будет выполняться вечно, пока кто-то её не остановит.
— Иногда бесконечные циклы создаются намеренно, — добавил Профессор. — Например, операционная система компьютера работает в бесконечном цикле, постоянно проверяя, не нажал ли пользователь какую-то клавишу или кнопку мыши.
python
while True:
проверитьвводпользователя()
обновить_экран()
подождать(0.01) # Маленькая пауза для экономии ресурсов
— Но чаще бесконечные циклы — это ошибка программиста, — предупредил Профессор. — Например, если забыть увеличивать счётчик в цикле while:
python
count = 0
while count < 5:
print("Это выполнится бесконечно!")
# Забыли добавить count = count + 1
— В этом случае count всегда будет равен 0, и условие count < 5 всегда будет истинным, — объяснил он. — Программа будет бесконечно выводить одно и то же сообщение.
Когда они проходили мимо аттракциона "Американские горки", Алиса заметила:
— Смотрите, поезд движется по одному и тому же пути снова и снова!
— Да, многие природные и механические процессы цикличны, — кивнул Профессор. — Но в программировании есть ещё одна важная особенность циклов — мы можем прервать цикл досрочно или пропустить некоторые итерации.
python
for i in range(10):
if i == 5:
break # Прерываем цикл, если i равно 5
print(i) # Будут выведены числа 0, 1, 2, 3, 4for i in range(10):
if i % 2 == 0:
continue # Пропускаем итерацию, если i чётное
print(i) # Будут выведены числа 1, 3, 5, 7, 9
— Команда break полностью прерывает цикл, а continue пропускает только текущую итерацию и переходит к следующей, — пояснил Профессор.
Задание
*
*
*Подсказка: используй цикл для управления количеством строк, и ещё один цикл для определения количества звёздочек в каждой строке.