Работа с флагами в 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('---') # выведет '---'
Дан список. Проверьте, что все его элементы являются положительными числами.
Дано целое число. Проверьте, является ли оно простым, то есть делится только на единицу и на само себя.