Работа с флагами в 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('---') # выведет '---'

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

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



Чат с GPT Компилятор