# Работа с флагами в Python

Флаг - это специальная переменная, которая может принимать только два значения: `True` или `False`. С помощью флагов можно решать задачи, проверяющие отсутствие чего-либо: к примеру, можно проверить, что в списке нет элемента с определенным значением.

Давайте решим следующую задачу: дан список с числами, нужно проверить, все ли элементы в нем являются положительными. Для этого зададим специальную переменную `flag`, которая до начала цикла будет истинна. А при попадании в цикл отрицательного числа, поменяем ей значение на `False`. Для того, чтобы узнать результат проверки, выведем переменную `flag` после цикла в консоль:

`lst = [1, 2, 3, 4, 5] flag = True for el in lst: if el < 0: flag = False print(flag) # выведет True, поскольку все числа положительные`

Хорошей практикой является назначение для переменной с флагом имени, отражающего заданное условие. Давайте переименуем `flag` в `isAllPositive`. И для наглядности изменим одно число из списка на отрицательное:

`lst = [1, 2, 3, -4, 5] isAllPositive = True for el in lst: if el < 0: isAllPositive = False print(isAllPositive) # выведет False, поскольку есть отрицательное число`

Если в перебираемом списке много значений и нужно остановить цикл после обнаружения первого отрицательного числа, то следует применить инструкцию `break`:

`for el in lst: if el < 0: isAllPositive = False break`

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

Давайте перепишем предыдущий пример. Если все элементы положительные, то пусть выведется `'+++'`, если нет - `'---'`:

`for el in lst: if el < 0: isAllPositive = False break if isAllPositive: print('+++') else: print('---') # выведет '---'`

Дан список. Проверьте, что все его элементы являются положительными числами.

Дано целое число. Проверьте, является ли оно простым, то есть делится только на единицу и на само себя.

← →
↑