Программирование циклов

Циклы for и while в Python: синтаксис, область применения, функция range(). Операторы break и continue. Вложенные циклы. Решение задач ОГЭ на трассировку циклических алгоритмов.

Программирование циклов

Определение

Цикл — алгоритмическая конструкция, обеспечивающая многократное выполнение одной и той же последовательности команд (тела цикла). Каждое однократное выполнение тела называется итерацией.

Два основных вида циклов в Python:

Формула

Цикл for

for переменная in последовательность:
    тело_цикла

Функция range()

range(stop)          # 0, 1, ..., stop-1
range(start, stop)   # start, start+1, ..., stop-1
range(start, stop, step)  # start, start+step, ... (< stop)

Цикл while

while условие:
    тело_цикла

break и continue

for i in range(10):
    if условие_выхода:
        break       # немедленный выход из цикла
    if условие_пропуска:
        continue    # переход к следующей итерации
    print(i)

Пример

Пример 1: сумма чисел от 1 до N (for)

n = int(input("N = "))
s = 0
for i in range(1, n + 1):
    s += i
print(f"Сумма = {s}")

Трассировка для n=4: i=1 → s=1, i=2 → s=3, i=3 → s=6, i=4 → s=10. Вывод: 10.

Пример 2: сумма чисел от 1 до N (while)

n = int(input("N = "))
s = 0
i = 1
while i <= n:
    s += i
    i += 1
print(f"Сумма = {s}")

Пример 3: подсчёт чётных чисел в диапазоне

a = int(input("a = "))
b = int(input("b = "))
count = 0
for x in range(a, b + 1):
    if x % 2 == 0:
        count += 1
print(f"Чётных чисел: {count}")

Трассировка для a=3, b=8: x=3 (нечёт), 4 (чёт, count=1), 5 (нечёт), 6 (чёт, count=2), 7 (нечёт), 8 (чёт, count=3). Вывод: 3.

Пример 4: break — поиск первого делителя

n = int(input("n = "))
for i in range(2, n):
    if n % i == 0:
        print(f"Первый делитель: {i}")
        break
else:
    print(f"{n} — простое число")

Пример 5: continue — печать только нечётных

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i, end=" ")
# Вывод: 1 3 5 7 9

Пример 6: вложенные циклы — таблица умножения

for i in range(1, 10):
    for j in range(1, 10):
        print(f"{i*j:3}", end="")
    print()

Пример 7: while с проверкой ввода

password = ""
while password != "secret":
    password = input("Введите пароль: ")
print("Доступ разрешён")

Обозначения

КонструкцияОписаниеПример
for i in range(n)n итераций, i = 0..n-1for i in range(5):
for i in range(a, b)b-a итераций, i = a..b-1for i in range(2, 7):
for i in range(a, b, s)с шагом sfor i in range(0, 10, 2):
while условие:пока условие истинноwhile x > 0:
breakвыход из циклаif x == 0: break
continueпропуск итерацииif x < 0: continue

Важно!

Примеры вопросов из тренажёра

  1. Q: Сколько итераций выполнит цикл for i in range(5)?

    A: верный ответ — 5

    Объяснение: range(5) генерирует 5 чисел: 0, 1, 2, 3, 4. Цикл выполнит 5 итераций.

  2. Q: Какие числа выведет range(3, 8)?

    A: верный ответ — 3, 4, 5, 6, 7

    Объяснение: range(3, 8) даёт числа от 3 до 7 включительно (8 не включается).

  3. Q: Что выведет программа? for i in range(1, 6, 2): print(i, end=' ')

    A: верный ответ — 1 3 5

    Объяснение: range(1, 6, 2) → 1, 3, 5. Шаг 2, конечное 6 не включается.

  4. Q: Что делает оператор break в цикле?

    A: верный ответ — Немедленно завершает цикл

    Объяснение: break немедленно прекращает выполнение цикла, управление передаётся следующей за циклом инструкции.

  5. Q: Что выведет программа? s = 0 for i in range(1, 4): s += i print(s)

    A: верный ответ — 6

    Объяснение: i=1 → s=1, i=2 → s=3, i=3 → s=6. Вывод: 6.

Пройти тему «Программирование циклов» в приложении