Программирование циклов
Циклы for и while в Python: синтаксис, область применения, функция range(). Операторы break и continue. Вложенные циклы. Решение задач ОГЭ на трассировку циклических алгоритмов.
Программирование циклов
Определение
Цикл — алгоритмическая конструкция, обеспечивающая многократное выполнение одной и той же последовательности команд (тела цикла). Каждое однократное выполнение тела называется итерацией.
Два основных вида циклов в Python:
- Цикл с параметром (for) — количество итераций известно заранее
- Цикл с предусловием (while) — выполняется, пока истинно условие
Формула
Цикл 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-1 | for i in range(5): |
for i in range(a, b) | b-a итераций, i = a..b-1 | for i in range(2, 7): |
for i in range(a, b, s) | с шагом s | for i in range(0, 10, 2): |
while условие: | пока условие истинно | while x > 0: |
break | выход из цикла | if x == 0: break |
continue | пропуск итерации | if x < 0: continue |
Важно!
range(n)генерирует числа от 0 до n-1, не включая n.range(5)→ 0, 1, 2, 3, 4.- В цикле while важно изменять переменную условия, иначе цикл станет бесконечным.
breakвыходит только из самого внутреннего цикла, в котором он находится.continueне прерывает цикл, а только пропускает текущую итерацию.- Вложенные циклы: внешний выполняется медленнее, внутренний — быстрее. Для таблицы 10×10 внешний цикл — 10 итераций, внутренний — 100.
- Не забывайте инициализировать счётчик (сумму) перед циклом:
s = 0.
Примеры вопросов из тренажёра
-
Q: Сколько итераций выполнит цикл for i in range(5)?
A: верный ответ — 5
Объяснение: range(5) генерирует 5 чисел: 0, 1, 2, 3, 4. Цикл выполнит 5 итераций.
-
Q: Какие числа выведет range(3, 8)?
A: верный ответ — 3, 4, 5, 6, 7
Объяснение: range(3, 8) даёт числа от 3 до 7 включительно (8 не включается).
-
Q: Что выведет программа? for i in range(1, 6, 2): print(i, end=' ')
A: верный ответ — 1 3 5
Объяснение: range(1, 6, 2) → 1, 3, 5. Шаг 2, конечное 6 не включается.
-
Q: Что делает оператор break в цикле?
A: верный ответ — Немедленно завершает цикл
Объяснение: break немедленно прекращает выполнение цикла, управление передаётся следующей за циклом инструкции.
-
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.