← Назад к вопросам

Какие циклы есть в Python?

1.0 Junior🔥 102 комментариев
#Python

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Циклы в Python: полный обзор

В Python существует два основных типа циклов: цикл for и цикл while. Они служат для многократного выполнения блока кода, но имеют разную логику применения и синтаксис.

1. Цикл for (цикл с перебором)

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

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

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

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

Перебор списка:

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(fruit)
# Вывод: apple, banana, cherry

Перебор строки:

for char in "Python":
    print(char)
# Вывод: P, y, t, h, o, n

Использование range(): Часто применяется для выполнения кода определённое количество раз:

for i in range(5):  # числа от 0 до 4
    print(f"Итерация {i}")

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

Цикл while выполняет блок кода до тех пор, пока заданное условие остаётся истинным (True). Это цикл с непредопределённым количеством итераций, где количество повторений зависит от изменения переменных в теле цикла.

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

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

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

count = 0
while count < 5:
    print(f"Счётчик: {count}")
    count += 1  # важно изменять переменную условия!
# Вывод: Счётчик: 0, 1, 2, 3, 4

Ключевые управляющие конструкции для циклов

Внутри обоих типов циклов можно использовать специальные инструкции для управления потоком выполнения:

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

Пример с break и else:

for i in range(10):
    if i == 5:
        print("Найдено число 5, прерываем цикл")
        break
else:
    print("Цикл завершился без прерывания")
# Вывод: Найдено число 5, прерываем цикл

Особенности и расширенные возможности

Цикл for с индексами:

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

Вложенные циклы:

for i in range(3):
    for j in range(2):
        print(f"i={i}, j={j}")

Цикл while с True и break:

while True:
    user_input = input("Введите 'выход' для завершения: ")
    if user_input.lower() == 'выход':
        break
    print(f"Вы ввели: {user_input}")

Сравнение и выбор между for и while

Критерийforwhile
ОсноваПеребор последовательностиВыполнение по условию
Количество итерацийОпределено заранееМожет быть неизвестно
Типичное применениеОбработка коллекций, фиксированное число повторовОжидание событий, обработка до условия
Риск бесконечного циклаНизкий (если последовательность конечна)Высокий (при ошибке в условии)

Практические рекомендации для QA Automation

  1. for идеален для:

    • Тестирования всех элементов массива тестовых данных
    • Перебора параметров в параметризованных тестах
    • Обработки результатов запросов (например, проверки всех элементов JSON-ответа)
  2. while полезен для:

    • Ожидания появления элементов на странице (вместе с WebDriverWait в Selenium)
    • Опроса состояния системы до достижения определённого условия
    • Обработки потоков данных неизвестной длины
  3. Производительность: В большинстве случаев for работает быстрее while для перебора последовательностей.

  4. Читаемость: Предпочитайте for когда количество итераций известно или происходит перебор коллекции — такой код понятнее и менее подвержен ошибкам.

Заключение

Python предлагает гибкую систему циклов, где for служит для детерминированного перебора, а while — для выполнения по условию. Понимание их различий и правильное применение в тестовых сценариях позволяет создавать эффективный, поддерживаемый и надёжный автоматизированный тестовый код. В QA Automation чаще используется цикл for, особенно в связке с range(), enumerate() и коллекциями тестовых данных, в то время как while находит применение в ожиданиях и поллинге.

Какие циклы есть в Python? | PrepBro