Использование флаг - переменной для отслеживания завершения задачи
На этом этапе вы научитесь использовать флаг - переменную для отслеживания завершения задачи в цикле. Флаг - переменная представляет собой булеву переменную (либо 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."
Использование флаг - переменной является простым и эффективным способом отслеживания завершения задачи в цикле. Эта техника полезна во многих различных сценариях, таких как поиск элемента в списке, валидация пользовательского ввода или обработка данных из файла.