Циклы

Обучающий материал: Циклы в Python

Обучающий материал: Циклы в Python

Полное руководство с примерами, задачами и тестами

1. Что такое циклы и зачем они нужны?

Циклы — это конструкции, которые позволяют выполнять один и тот же блок кода несколько раз. Они используются, когда нужно повторить какие-то действия без ручного копирования кода.

Основные ситуации для использования циклов:

  • Обработка каждого элемента списка, строки или другой последовательности
  • Выполнение действий определенное количество раз
  • Повторение операций до достижения нужного условия
  • Поиск элементов в данных

В Python есть два основных типа циклов:

  1. Цикл for — когда известно количество повторений
  2. Цикл while — когда повторения зависят от условия
Тема изучена! Прогресс: 5%

2. Цикл for

2.1. Базовый синтаксис

for переменная in последовательность: # блок кода, который выполняется для каждого элемента

Пример:

for i in [1, 2, 3, 4, 5]: print(f”Число: {i}”)

Вывод:

Число: 1 Число: 2 Число: 3 Число: 4 Число: 5

2.2. Функция range()

range() создает последовательность чисел. Есть три формы:

Форма Пример Результат
range(stop) range(5) 0, 1, 2, 3, 4
range(start, stop) range(2, 6) 2, 3, 4, 5
range(start, stop, step) range(1, 10, 2) 1, 3, 5, 7, 9 (шаг 2)

Примеры использования range():

# С шагом 2 for i in range(1, 10, 2): print(i) # 1, 3, 5, 7, 9 # В обратном порядке for i in range(10, 0, -1): print(i) # 10, 9, 8, …, 1

2.3. Итерация по различным последовательностям

По строке:

word = “Python” for letter in word: print(letter) # P, y, t, h, o, n

По списку:

fruits = [“apple”, “banana”, “cherry”] for fruit in fruits: print(fruit) # apple, banana, cherry

С индексом (функция enumerate()):

fruits = [“apple”, “banana”, “cherry”] for index, fruit in enumerate(fruits): print(f”Индекс {index}: {fruit}”)

Вывод:

Индекс 0: apple Индекс 1: banana Индекс 2: cherry
Тема изучена! Прогресс: 20%

3. Цикл while

3.1. Базовый синтаксис

while условие: # блок кода, который выполняется пока условие истинно

Пример:

count = 1 while count <= 5: print(f"Счетчик: {count}") count += 1 # Увеличиваем счетчик, иначе цикл будет бесконечным

Вывод:

Счетчик: 1 Счетчик: 2 Счетчик: 3 Счетчик: 4 Счетчик: 5

3.2. Бесконечные циклы и выход из них

# Бесконечный цикл с выходом по break while True: user_input = input(“Введите ‘стоп’ для выхода: “) if user_input.lower() == “стоп”: break # Выход из цикла print(f”Вы ввели: {user_input}”)

3.3. Когда использовать while вместо for?

  • Когда неизвестно заранее, сколько раз нужно повторить
  • Когда выход зависит от сложного условия
  • При обработке потоков данных (чтение файла до конца)

Пример с условием:

password = “” while password != “секрет”: password = input(“Введите пароль: “) print(“Доступ разрешен!”)
Тема изучена! Прогресс: 35%

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

4.1. Что это такое?

Вложенные циклы — это циклы внутри других циклов. Они используются для работы с многомерными структурами (таблицами, матрицами).

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

for i in range(1, 4): # Внешний цикл for j in range(1, 4): # Внутренний цикл print(f”{i} × {j} = {i * j}”) print() # Пустая строка между группами

4.2. Порядок выполнения

Внешний цикл выполняется медленнее, внутренний — быстрее:

Внешний i=1 Внутренний j=1 → 1×1=1 Внутренний j=2 → 1×2=2 Внутренний j=3 → 1×3=3 Внешний i=2 Внутренний j=1 → 2×1=2 Внутренний j=2 → 2×2=4 Внутренний j=3 → 2×3=6

4.3. Работа с двумерными списками (матрицами)

matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] for row in matrix: # Перебираем строки for element in row: # Перебираем элементы в строке print(element, end=” “) print() # Новая строка после каждой строки матрицы

Вывод:

1 2 3 4 5 6 7 8 9
Тема изучена! Прогресс: 50%

5. Управление выполнением циклов

5.1. Оператор break

break полностью завершает выполнение цикла.

for i in range(1, 10): if i == 5: break # Выход из цикла при i=5 print(i)

Вывод: 1 2 3 4

5.2. Оператор continue

continue пропускает оставшуюся часть текущей итерации и переходит к следующей.

for i in range(1, 6): if i == 3: continue # Пропускаем i=3 print(i)

Вывод: 1 2 4 5

5.3. Блок else в циклах

Блок else выполняется после нормального завершения цикла (без break).

Пример с for:

for i in range(3): print(i) else: print(“Цикл завершен без break”)

Вывод:

0 1 2 Цикл завершен без break

Пример с break – else не выполняется:

for i in range(3): if i == 1: break print(i) else: print(“Это сообщение не появится”)

Вывод: 0

5.4. Сравнение break и continue

Ситуация break continue
i=1 Выполняем код Выполняем код
i=2 (условие) Выходим из цикла Пропускаем оставшийся код и переходим к i=3
i=3 Не выполняется Выполняем код
i=4 Не выполняется Выполняем код
Тема изучена! Прогресс: 65%

6. Практические примеры

Пример 1: Сумма чисел

# Сумма чисел от 1 до 100 total = 0 for i in range(1, 101): total += i print(f”Сумма: {total}”) # 5050

Пример 2: Поиск простых чисел

# Проверка, является ли число простым num = 17 is_prime = True for i in range(2, int(num**0.5) + 1): if num % i == 0: is_prime = False break if is_prime and num > 1: print(f”{num} – простое число”) else: print(f”{num} – не простое число”)

Пример 3: Обработка пользовательского ввода

# Подсчет суммы введенных чисел до ввода 0 total = 0 while True: num = float(input(“Введите число (0 для выхода): “)) if num == 0: break total += num print(f”Общая сумма: {total}”)

Пример 4: Работа со строками

# Подсчет гласных в строке text = “Привет, как дела?” vowels = “аеёиоуыэюяaeiou” count = 0 for char in text.lower(): if char in vowels: count += 1 print(f”Количество гласных: {count}”)

Пример 5: Рисование фигур

# Рисование треугольника height = 5 for i in range(1, height + 1): print(“*” * i)

Вывод:

* ** *** **** *****
Тема изучена! Прогресс: 80%

7. Частые ошибки и как их избежать

Ошибка 1: Бесконечный цикл while

# ОШИБКА: count = 1 while count <= 5: print(count) # Забыли увеличить count - бесконечный цикл! # ПРАВИЛЬНО: count = 1 while count <= 5: print(count) count += 1 # Не забываем изменять переменную условия

Ошибка 2: Изменение списка во время итерации

# ОШИБКА: numbers = [1, 2, 3, 4, 5] for num in numbers: if num % 2 == 0: numbers.remove(num) # Меняем список во время итерации # ПРАВИЛЬНО: numbers = [1, 2, 3, 4, 5] new_numbers = [] for num in numbers: if num % 2 != 0: # Оставляем только нечетные new_numbers.append(num) numbers = new_numbers

Ошибка 3: Неправильное использование range()

# ОШИБКА: пустой цикл for i in range(5, 1): # start > stop, но step=1 → пустой range print(i) # ПРАВИЛЬНО: for i in range(5, 1, -1): # Указываем отрицательный шаг print(i) # 5, 4, 3, 2

Ошибка 4: Путаница между break и continue

# Хотим пропустить четные числа: for i in range(1, 6): if i % 2 == 0: continue # ПРАВИЛЬНО: переходим к следующей итерации # break # ОШИБКА: полностью выйдем из цикла при i=2 print(i)
Тема изучена! Прогресс: 90%

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

Задание 1:

Напишите программу, которая выводит все четные числа от 2 до 20.

for i in range(2, 21, 2): print(i)

Задание 2:

Напишите программу, которая вычисляет факториал числа N.

n = 5 factorial = 1 for i in range(1, n + 1): factorial *= i print(f”Факториал {n} = {factorial}”)

Задание 3:

Напишите программу, которая запрашивает у пользователя числа до тех пор, пока сумма введенных чисел не превысит 100.

total = 0 while total <= 100: num = int(input("Введите число: ")) total += num print(f"Сумма превысила 100! Итог: {total}")

Задание 4:

Напишите программу, которая выводит таблицу умножения для чисел от 1 до 10.

for i in range(1, 11): for j in range(1, 11): print(f”{i} × {j} = {i * j}”) print() # Пустая строка между таблицами

Задание 5:

Напишите программу, которая определяет, является ли введенное слово палиндромом (читается одинаково слева направо и справа налево).

word = input(“Введите слово: “).lower() is_palindrome = True for i in range(len(word) // 2): if word[i] != word[-i – 1]: is_palindrome = False break if is_palindrome: print(f”Слово ‘{word}’ – палиндром”) else: print(f”Слово ‘{word}’ – не палиндром”)

Советы по решению задач:

  • Всегда начинайте с простого примера
  • Используйте отладку: добавляйте print() для проверки значений переменных
  • Разбивайте сложную задачу на более простые подзадачи
  • Проверяйте программу на разных входных данных
Тема изучена! Прогресс: 100%

9. Памятка по циклам

Когда использовать for:

  • Известно количество итераций
  • Нужно пройти по всем элементам последовательности
  • Работа с range() для повторения N раз

Когда использовать while:

  • Количество итераций неизвестно заранее
  • Зависит от сложного условия
  • Чтение данных до определенного признака

Операторы управления:

  • breakполный выход из цикла
  • continueпереход к следующей итерации
  • else — выполняется, если цикл завершился без break

Полезные советы:

  1. Всегда проверяйте, чтобы в цикле while было изменение переменной условия
  2. Для отладки используйте print() внутри цикла, чтобы видеть значения переменных
  3. При работе с большими данными избегайте вложенных циклов высокой глубины
  4. Используйте enumerate() для получения индекса и элемента одновременно
  5. Для обратного порядка используйте range(n, -1, -1) или reversed()

Обучающий материал по циклам в Python

© 2026. Для использования в образовательных целях.

Материал подготовлен для успешной подготовки к тестированию.