Как проверить, завершен ли цикл в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Вы начнете с рассмотрения простого примера цикла for, который проходит по списку фруктов и выводит каждый из них. Затем вы узнаете, как использовать флаг - переменную для отслеживания хода выполнения цикла. И, наконец, вы обнаружите, как использовать предложение else в сочетании с циклами для выполнения кода только после того, как цикл завершится нормально.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ControlFlowGroup -.-> python/break_continue("Break and Continue") python/DataStructuresGroup -.-> python/lists("Lists") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/booleans -.-> lab-559538{{"Как проверить, завершен ли цикл в Python"}} python/conditional_statements -.-> lab-559538{{"Как проверить, завершен ли цикл в Python"}} python/for_loops -.-> lab-559538{{"Как проверить, завершен ли цикл в Python"}} python/break_continue -.-> lab-559538{{"Как проверить, завершен ли цикл в Python"}} python/lists -.-> lab-559538{{"Как проверить, завершен ли цикл в Python"}} python/data_collections -.-> lab-559538{{"Как проверить, завершен ли цикл в Python"}} end

Изучение выполнения циклов

На этом этапе вы научитесь, как выполняются циклы for в Python. Циклы - это фундаментальные конструкции программирования, которые позволяют повторять блок кода несколько раз. Понимание того, как работают циклы, является важным для написания эффективных и функциональных программ.

Начнем с простого примера. Создайте файл с именем loop_example.py в директории ~/project с помощью редактора VS Code.

## loop_example.py
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Этот код проходит по списку фруктов и выводит каждый фрукт в консоль.

Чтобы запустить этот скрипт, откройте терминал в VS Code и выполните следующую команду:

python loop_example.py

Вы должны увидеть следующий вывод:

apple
banana
cherry

Разберем, что происходит в коде:

  1. fruits = ["apple", "banana", "cherry"]: Эта строка создает список с именем fruits, содержащий три строки: "apple", "banana" и "cherry".
  2. for fruit in fruits:: Эта строка запускает цикл for. Цикл проходит по каждому элементу в списке fruits. На каждой итерации текущий элемент присваивается переменной fruit.
  3. print(fruit): Эта строка находится внутри цикла. Она выводит значение переменной fruit в консоль.

Цикл выполняется три раза, по одному разу для каждого фрукта в списке. На первой итерации fruit равно "apple", поэтому выводится "apple". На второй итерации fruit равно "banana", поэтому выводится "banana". На третьей итерации fruit равно "cherry", поэтому выводится "cherry".

Теперь изменим скрипт, чтобы включить индекс каждого фрукта. Измените файл loop_example.py следующим образом:

## loop_example.py
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

В этом измененном коде мы используем функцию enumerate(), чтобы получить как индекс, так и значение каждого элемента в списке.

Запустите скрипт еще раз:

python loop_example.py

Вы должны увидеть следующий вывод:

Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry

Функция enumerate() возвращает последовательность пар (индекс, элемент). На каждой итерации индекс присваивается переменной index, а элемент - переменной fruit.

Понимание того, как выполняются циклы, является важным для написания программ, которые могут обрабатывать коллекции данных. В следующих шагах вы научитесь более продвинутым методам управления выполнением циклов.

Использование флаг - переменной для отслеживания завершения задачи

На этом этапе вы научитесь использовать флаг - переменную для отслеживания завершения задачи в цикле. Флаг - переменная представляет собой булеву переменную (либо True, либо False), которая указывает, было ли выполнено определенное условие. Это распространенная техника для управления потоком выполнения программы.

Рассмотрим сценарий, когда вам нужно найти определенное число в списке и остановить цикл, как только его найдете. Создайте файл с именем flag_example.py в директории ~/project с помощью редактора VS Code.

## flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
found = False  ## Инициализируем флаг - переменную

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        found = True
        print(f"Found the target: {target}")
        break  ## Выход из цикла

if found:
    print("Target found in the list.")
else:
    print("Target not found in the list.")

В этом коде мы инициализируем флаг - переменную с именем found со значением False. Цикл проходит по списку numbers. Если текущее число равно target, мы устанавливаем found в True, выводим сообщение и выходим из цикла с помощью оператора break. После цикла мы проверяем значение found. Если оно равно True, мы выводим сообщение о том, что искомое число было найдено. В противном случае выводим сообщение о том, что число не было найдено.

Чтобы запустить этот скрипт, откройте терминал в VS Code и выполните следующую команду:

python flag_example.py

Вы должны увидеть следующий вывод:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Found the target: 5
Target found in the list.

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

Теперь изменим скрипт, чтобы искать число, которое не находится в списке. Измените переменную target на 15:

## flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 15
found = False  ## Инициализируем флаг - переменную

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        found = True
        print(f"Found the target: {target}")
        break  ## Выход из цикла

if found:
    print("Target found in the list.")
else:
    print("Target not found in the list.")

Запустите скрипт еще раз:

python flag_example.py

Вы должны увидеть следующий вывод:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Checking number: 6
Checking number: 7
Checking number: 8
Checking number: 9
Checking number: 10
Target not found in the list.

В этом случае цикл проходит по всему списку, не найдя искомого числа. Переменная found остается равной False, и выводится сообщение "Target not found in the list."

Использование флаг - переменной является простым и эффективным способом отслеживания завершения задачи в цикле. Эта техника полезна во многих различных сценариях, таких как поиск элемента в списке, валидация пользовательского ввода или обработка данных из файла.

Использование предложения else с циклами

На этом этапе вы научитесь использовать предложение else с циклами for в Python. Предложение else в цикле for выполняется, когда цикл завершается нормально, то есть когда он не прерывается оператором break. Это может быть полезно для выполнения действий, которые должны быть выполнены только в том случае, если цикл завершается без нахождения определенного элемента или возникновения ошибки.

Вернемся к примеру из предыдущего этапа, где мы искали искомое число в списке. Мы можем использовать предложение else для вывода сообщения, если искомое число не найдено. Создайте файл с именем else_example.py в директории ~/project с помощью редактора VS Code.

## else_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 15

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        print(f"Found the target: {target}")
        break
else:
    print("Target not found in the list.")

В этом коде предложение else связано с циклом for. Если цикл завершается без нахождения target (то есть оператор break не выполняется), выполняется код внутри предложения else.

Чтобы запустить этот скрипт, откройте терминал в VS Code и выполните следующую команду:

python else_example.py

Вы должны увидеть следующий вывод:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Checking number: 6
Checking number: 7
Checking number: 8
Checking number: 9
Checking number: 10
Target not found in the list.

Поскольку target (15) не находится в списке numbers, цикл завершается нормально, и выполняется предложение else, выводящее сообщение "Target not found in the list."

Теперь изменим скрипт, чтобы включить искомое число в список. Измените переменную target на 5:

## else_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        print(f"Found the target: {target}")
        break
else:
    print("Target not found in the list.")

Запустите скрипт еще раз:

python else_example.py

Вы должны увидеть следующий вывод:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Found the target: 5

В этом случае цикл прерывается оператором break, когда найдено target (5). Поэтому предложение else не выполняется.

Предложение else в цикле for предоставляет лаконичный способ выполнения кода, когда цикл завершается нормально, без прерывания оператором break. Это может быть полезно для обработки случаев, когда вам нужно выполнить определенное действие только в том случае, если определенное условие не выполняется во время выполнения цикла.

Резюме

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

В начальном примере выполнялась итерация по списку фруктов и выводился каждый фрукт. В последующем измененном варианте использовалась функция enumerate() для вывода как индекса, так и названия фрукта, что демонстрирует, как можно получить доступ как к позиции, так и к значению элементов в цикле.