Алгоритмы с циклами

Циклы while и for в Python. Функция range(). Операторы break и continue. Решение задач на вычисление сумм, произведений, обработку последовательностей.

Алгоритмы с циклами

1. Понятие цикла

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

2. Цикл while (цикл с предусловием)

Синтаксис

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

Тело цикла выполняется до тех пор, пока условие истинно. Если условие ложно изначально, тело не выполнится ни разу.

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

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

Пример 2: обработка ввода до корректного значения

age = -1
while age < 0 or age > 120:
    age = int(input("Введите возраст (0-120): "))
print(f"Возраст: {age}")

Пример 3: подсчёт количества цифр в числе

n = int(input("Введите число: "))
count = 0
temp = n
while temp > 0:
    count += 1
    temp //= 10
print(f"Цифр в числе: {count}")

3. Цикл for (цикл с параметром)

Синтаксис

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

Переменная последовательно принимает значения из последовательности.

Функция range()

ВызовПоследовательностьКоличество элементов
range(n)0, 1, 2, ..., n-1n
range(a, b)a, a+1, ..., b-1b-a
range(a, b, step)a, a+step, ..., < b—

Важно: range() не включает конечное значение (как срез)! Отрицательный шаг даёт убывающую последовательность: range(10, 0, -1) → 10, 9, ..., 1.

Примеры

for i in range(5):         # 0, 1, 2, 3, 4
    print(i)

for i in range(1, 6):      # 1, 2, 3, 4, 5
    print(i)

for i in range(2, 11, 2):  # 2, 4, 6, 8, 10 (чётные)
    print(i)

Типовые задачи с циклом for

Сумма чисел от 1 до N:

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

Таблица умножения:

n = int(input("Таблица умножения на: "))
for i in range(1, 11):
    print(f"{n} × {i} = {n * i}")

Факториал:

n = int(input("n = "))
fact = 1
for i in range(1, n + 1):
    fact *= i
print(f"{n}! = {fact}")

4. Управление циклом: break и continue

break — немедленный выход из цикла

for i in range(100):
    if i * i > 1000:
        print(f"Первое число, квадрат > 1000: {i}")
        break

continue — пропуск текущей итерации

for i in range(10):
    if i % 2 == 0:
        continue  # пропускаем чётные
    print(i)      # печатаем только нечётные

5. Вложенные циклы

Цикл может находиться внутри другого цикла — вложенный цикл. Внутренний цикл полностью выполняется на каждой итерации внешнего.

Пример: таблица Пифагора (умножения):

for i in range(1, 11):
    for j in range(1, 11):
        print(f"{i*j:4}", end="")
    print()  # перевод строки

6. Выбор между while и for

7. Бесконечный цикл

while True:
    command = input("> ")
    if command == "exit":
        break
    print(f"Вы ввели: {command}")

Бесконечный цикл обязательно должен содержать условие выхода (break), иначе программа зависнет.

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

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

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

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

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

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

    Объяснение: range(a, b) — числа от a до b-1. range(2, 7) = 2, 3, 4, 5, 6 (7 не включается!).

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

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

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

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

    A: верный ответ — Пропускает остаток итерации и переходит к следующей

    Объяснение: continue пропускает оставшийся код в теле цикла и переходит к следующей итерации.

  5. Q: Какие числа выведет: for i in range(10, 0, -3): print(i)?

    A: верный ответ — 10, 7, 4, 1

    Объяснение: range(10, 0, -3): шаг -3 от 10 вниз, не включая 0 → 10, 7, 4, 1.

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