При написании программы, практически всегда возникает потребность создать создать разветвленный алгоритм с несколькими вариантами условия. К примеру, для пользователей с разными языковыми предпочтениями использовать разные языковые пакеты или режим конфигурации ПО. В данном материале рассмотрим одну из самых часто используемых и простых конструкций Python3 – if!
Что такое условная конструкция if в Python?
Как упоминалось выше, алгоритмы часто бывают разветвленными и для реализации различных сценариев работы используют специальные конструкции языка:

Логика такова, если [условие-1] верное, то выполнить [инструкцию-1]. Иначе (первое ложь) если [условие-2] верное, то выполнить [инструкцию-2], иначе (все выше неверное) выполнить [инструкцию-3]. Обратите внимание, что отступы или же табуляция определяют будет относиться следующая строка инструкции к конструкции или будет отдельна от нее. Рассмотрим самый простой пример использования:
max=12
min=1
if max>5 and min<2:
print(max+min)
print ('end')

В заранее определены переменные min, max и прописано условие, что если max больше 5, а min меньше 2, то выполнить инструкцию print (max+min). Инструкция, которая будет выполняться, при верном условии отделяется отступами, как print(max+min) в данном примере. Результат работы программы будет выглядеть следующим образом:
13
endА если были бы заданны переменные не удовлетворяющие условию, то условная конструкция if не выполнила бы инструкции входящие в нее. И вывод бы выглядел так:
endДля составления условия используется следующий синтаксис:
- [value-1] == [value-2] проверка на равенство;
- [value-1] != [value-2] проверка на неравенство;
- [value-1] >= или <= или > или < [value-2] проверка на величину.
Каждое из представленных выражений содержит операнды [value-1] и [value-2], а так же оператор между ними, связанность может обеспечиваться дополнительными значениями or и and. А что если, при неверном условии необходимо выполнить действие? Для этого существует блок else!
Else блок
Логика предыдущего синтаксиса предусматривала проверку данных и выполнения соответственных действий, в случае если значение равнялось True. Но если необходимо внести разветвленность с действием, при не выполненном условии, то используем else:
max=12
min=1
if max>5 and min<2:
print(max+min)
else:
print('Values din\'t calculate')
print ("end")
В данном примере инструкция, так же проверяет условие, однако, в случае если оно не будет выполнено, то управление перейдет на блок else и на экран пользователя будет выведен текст:
Values didn't calculate
endЕсли команда конструкции представляет собой одну строку, то приемлемо использование следующего синтаксиса if max>5 and min<2: print(max+min):
max=12
min=1
if max>5 and min<2: print(max+min)
else: print('Values din\'t calculate')
print ("end")
Обычно подобные конструкты используют для уведомления пользователей о действиях или изменении логики работы алгоритма. Но если требуется проверка еще одного условия, то для такого существует elif.
Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
Скриншот №5 — Создание сервера
Elif блок
Смысл работы данного блока заключается в выполнении проверки нового логического условия, если if [условие] оказалось False. К пр меру, данный блок может быть полезен, при выборе из двух путей:
language = "fr"
if language == 'en':
print ("Good evening!")
elif language == 'fr':
print ("Bonsoir!")
else: print ("Language udefined")
Если пользователь выбрал опцию en, то выполнится стандартное условие. А если fr, то управление перейдет блоку elif и выполнится команда ниже. Однако, если ни одно из условий не выполнено, то управление перейдет блоку else. Результатом работы инструкции представленной выше будет вывод:
Bonsoir! Обратите внимание, что для такого типа конструкции приемлемо до 2 ответвлений алгоритма. К примеру, если языков больше или равно трем, то лучше использовать конструкцию switch case, которая оптимальна для работы. Но, что если в логике алгоритма необходимо использовать зависящие друг от друга условия? Есть возможность сделать их вложенными!
Вложенные if конструкции
Для более сложных сценариев можно использовать вложенные конструкции, работают они так же как и обычные выполняя блок вложенных инструкций в них. Рассмотрим на примере:
language = "en"
mode = "child"
if language == 'en':
if mode == "child":
print ("Hi, welcome to child mode!")
else: print ("Hi, welcome to adult mode!")
elif language == 'fr':
if mode == "child":
print ("Bonjour, bienvenue en mode enfant!")
else: print ("Bonjour, bienvenue en mode adulte!")

Данная инструкция в зависимости от языка, который выбран пользователя и режима, в котором он находится выводит соответствующее приветствие. Обратите внимание, что отступы у вложенных условий, так же сохраняются! Выводом данной инструкции будет:
Hi, welcome to child mode! Так как условия для данного пути совпали, однако, вложенность желательно использовать так же для двух или трех ответвлений. В остальных случаях подойдет switch case!
Знание и умение правильно применять условные операторы является фундаментальной частью навыков программирования. Они обеспечивают возможность создания более интерактивных и адаптивных приложений, способных реагировать на различные вводные данные и условия работы. Независимо от сложности задачи, условные конструкции помогут вам реализовать нужную логику и сделать ваш код более читаемым и поддерживаемым.