Условные операторы в Python: примеры и как использовать
Сегодня мы поговорим о конструкции проверки условия if . Это одна из базовых конструкций в программировании — и не только в Python.
Курс Аналітик даних.
Протягом 4 місяців ви вивчите повний набір інструментів для аналізу даних та отримаєте можливість працевлаштування в Laba Group.
С помощью конструкции if можно указать критерии выполнения кода, что позволяет программе принимать решения на основе полученных данных и определять по какой ветке алгоритма ей двигаться дальше.
В этом материале рассматрим синтаксис, блок-схемы и примеры трех видов конструкции if , которые есть в Python:
- if ;
- if. else ;
Курс Python basic.
Після курсу ви зможете впевнено працювати з чатботами, скриптами, вбудованими системами, веб- та мобільними застосунками, а також навіть ігровими програмами.

Конструкция if
if — с амый базовый условный оператор в Python, при использовании которого указывается только критерий выполнения действия и собственно само действие.
Синтаксис конструкции if
В языке программирования Python синтаксис конструкции if выглядит так:
if некий_блок_кода: блок_кода
Некий_блок_кода — это логическое выражение, которое должно вернуть значение True или False . Если оно вернет True , то выполнится блок кода, который находится после двоеточия и отделен от строки if отступом.
Блок-схема конструкции if
Блок-схема конструкции if выглядит так:

Пример конструкции if
Пример использования конструкции if в Python:
x = 17 if x > 0: print("x is positive")
В этом примере, если значение переменной x больше нуля, то будет выведена строка x is positive .
Курс Frontend.
Онлайн курс з працевлаштуванням, ставай суперніндзя, який може з нуля створити сайт.
Конструкция if…else
Конструкция if. else чуть сложнее, чем if — она позволяет выполнить один блок кода, если условие истинно, и другой блок кода, если условие ложно.
Синтаксис конструкции if…else
Синтаксис конструкции if. else в Python выглядит так:
if выражение: блок кода 1 else: блок кода 2
Синтаксис похож на if , но добавляется else и двоеточие, чтобы сказать, что делать программе, если проверка на первое условие не вернет значение True .
Блок-схема конструкции if…else
Блок-схема конструкции if. else выглядит так:

Пример конструкции if…else
Пример использования конструкции if. else в Python:
event_type = "HighloadToday" if event_type == "HighloadToday": print("Welcome to HighloadToday conference!") print("Don't forget to visit our booth!") else: print("Welcome to our event!")
В этом примере мы инициализируем, а потом проверяем значение переменной event_type :
- если оно равно «HighloadToday» , программа выводит сообщение о приветствии на конференции HighloadToday и напоминает посетить наш стенд;
- если значение переменной не равно «HighloadToday» , программа выводит сообщение о приветствии на другом мероприятии.
Конструкция if…elif…else
Конструкция if. elif. else — самая сложная. Она позволяет выбрать один из нескольких блоков кода для выполнения, в зависимости от того, какое из заданных условий является истинным.
Це хороший спосіб розвитку вашої кар’єри в IT-індустрії. Після проходження курсу Mate гарантує вам офер мрії.
Как работает if. elif. else :
- Если первое условие истинно, то выполняется соответствующий блок кода, а код после этого условия — не выполняется.
- Если первое условие ложно, то проверяется следующее условие в конструкции elif . Так продолжается до тех пор, пока не найдется истинное условие.
- Если все условия ложны, то выполняется блок кода, определенный в конструкции else .
Синтаксис конструкции if…elif…else
Синтаксис конструкции if. elif. else в Python выглядит так:
if выражение1: блок кода 1 elif выражение2: блок кода 2 elif выражение3: блок кода 3 else: блок кода 4
Блок-схема конструкции if…elif…else
Блок-схема конструкции if. elif. else выглядит так:

Пример использования конструкции if…elif…else в Python
Пример ниже показывает, как конструкция if. elif. else может быть использована для выполнения разных действий в зависимости от значения переменной, а также настройки параметров вычислений в соответствии с каждым условием:
product_type = "clothing" product_price = 50 if product_type == "electronics": discount = 0.1 elif product_type == "clothing": discount = 0.2 elif product_type == "books": discount = 0.3 else: discount = 0.05 final_price = product_price - (product_price * discount) print("The final price of the product is:", final_price)
Здесь конструкция if. elif. else применяется для проверки значения переменной product_type и определения соответствующей скидки:
- если product_type равно «electronics» , устанавливается скидка в 10%;
- если product_type равно «clothing» , скидка принимает значение в 20%;
- если product_type равно «books» , выбирается скидка в 30%;
- если значение переменной не соответствует ни одному из указанных значений, скидка выставляется в 5%.
Затем вычисляется окончательная цена товара с использованием формулы final_price = product_price — (product_price * discount) . При этом значение переменной зависит от условий выше.
Наконец, на экран выводится сообщение с окончательной ценой товара.
Хочешь глубже изучать Python, еще и под присмотром опытных менторов? Приходи на курсы Python от Hillel. Доступны два варианта: Basic-курс и Pro, для тех, кто хочет усовершенствовать знания.
Вложенные конструкции
Конструкции if можно вкладывать друг в друга, чтобы описать более сложные условия.
Рассмотрим вложенную конструкцию на примере обработки компанией заявок. Предположим, компания имеет разные уровни обслуживания для своих клиентов. При получении заявки она должна определить, какой уровень обслуживания применять для обработки этой заявки:
if customer_type == "platinum": if request_type == "technical": handle_platinum_technical_request() elif request_type == "billing": handle_platinum_billing_request() else: handle_platinum_general_request() elif customer_type == "gold": if request_type == "technical": handle_gold_technical_request() elif request_type == "billing": handle_gold_billing_request() else: handle_gold_general_request() else: handle_regular_request()
В этом примере в отдельные проверки конструкции if. elif. else вложены дополнительные проверки такого же типа. То есть сначала программа проверяет тип клиента (Platinum или Gold), а потом уже — тип заявки:
- если это техническая заявка, то она обрабатывается функцией handle_platinum_technical_request() ;
- если это заявка на оплату, то она обрабатывается функцией handle_platinum_billing_request() ;
- если это общая заявка, то она обрабатывается функцией handle_platinum_general_request() .
Обратите внимание! Для клиентов с типом Gold, программа обрабатывает заявки аналогичным образом, но использует другие функции. А если бы эти блоки были одинаковыми, их можно было бы вынести в отдельную функцию.
Ремарка про отступы
Отступы в языке программирования Python — часть синтаксиса, которая отвечает за отделение блоков. И при использовании условных конструкций это особенно важно.
Наличие правильных отступов помогает интерпретатору Python определить границы блоков кода, которые должны быть выполнены в теле условной конструкции.
В Python для создания отступов используется пробел или символ табуляции. Обычно для каждого нового блока кода внутри условной конструкции используется отступ в четыре пробела. Неправильное использование отступов может привести к ошибкам синтаксиса и выполнению неправильного кода:
# Неправильно отформатированный код x = 5 if x > 0: print("x is positive") # Неправильно отступленный блок кода else: print("x is negative")
В этом примере блок кода, который должен выполниться, если условие x > 0 истинно, не правильно отступлен. В результате, при запуске этого кода, возникнет ошибка синтаксиса:
IndentationError: expected an indented block
Эта ошибка возникает потому, что Python ожидает, что следующий блок кода будет правильно отступлен после условной конструкции.
Ошибки будут возникать даже если вы забыли про отступ только в одной строке:
# Неправильно отформатированный код x = 5 if x > 0: print("x is positive") else: print("x is negative") # Неправильно отступленный блок кода
В этом примере не правильно отформатирована часть кода, которая должна выполниться, если условие x > 0 ложно. В результате, при запуске этого кода, программа выведет сообщение “x is negative” , даже если значение переменной x положительное.
Заключение
Конструкция if — важная часть любого языка программирования, включая Python. Она позволяет программам принимать решения на основе данных, полученных в ходе выполнения.
Если нужно описать более сложные условия, можно использовать конструкции if. else и if. elif. else . Для самых сложных алгоритмов используйте вложенные конструкции if .
Для закрепления материала мы рекомендуем посмотреть видео:
А если вы уже знаете базу Python и теперь хотите овладеть востребованной профессией с этим скиллом, регистрируйтесь на курс Data Scientist от robot_dreams. Это комплексная 12-недельная программа о магии данных.
Курс С++ для GameDevData analyst.
Комплексний курс, який навчить кодити на C++ з нуля, отримай необхідні навички щоб заволодіти затребуваною мовою програмування.
Условный оператор if. else в Python
Программа, код которой вы видите выше, оценивает значение `выражение`, которое может быть равно True или False . Программа выполнит оператор(ы), только если выражение = True . Если выражение = False , этот кусок кода не будет выполняться.
В Python тело конструкции if обозначается отступами. Тело начинается с первой строки с отступом и заканчивается первой строкой без отступа.
Работая с условной конструкцией, важно знать, что Python интерпретирует ненулевые значения как True . None и 0 интерпретируются как False .
Блок-схема конструкции
Пример использования конструкции
# Если число положительно, мы выведем на экран соответствующее сообщение. num = 3 if num > 0: print(num, "— положительное число.") print("Это сообщение напечатается в любом случае.") num = -1 if num > 0: print(num, "— положительное число.") print("Это сообщение тоже напечатается в любом случае.")
Вывод:
3 — положительное число.
Это сообщение выведется в любом случае.
Это сообщение тоже выведется в любом случае.
В примере выше num > 0 — выражение, которое проверяется на истинность. Только если это выражение окажется истинным, т.е. True , выполнится тело оператора if .
При num = 3 выражение num > 0 истинно, поэтому Python выполнит оператор, находящийся в теле if. Вот почему на экран выводится сообщение «3 — положительное число».
При num = -1 выражение num > 0 ложно, поэтому Python проигнорирует оператор, находящийся в теле if.
А вот функции вывода на экран print(«Это сообщение выведется в любом случае.») и print(«Это сообщение тоже выведется в любом случае.») находятся вне блока if, поэтому выполняются при любых значениях num .
Конструкция if. else
Синтаксис конструкции
if выражение:
Тело if
else:
Тело else
Оператор if. else оценивает выражение и выполняет тело if только в том случае, если выражение (условие) истинно, то есть равно True .
Если выражение равно False , выполняется тело else . Для разделения этих блоков используются отступы.
Блок-схема конструкции
Пример использования конструкции
# Программа проверяет, является ли число положительным # или отрицательным и выводит соответствующее сообщение. num = 3 # Также попробуйте следующие два варианта. # num = -5 # num = 0 if num >= 0: print("Число больше либо равно 0") else: print("Отрицательное число")
Вывод:
Число больше либо равно 0
В приведенном выше примере при num = 3 выражение истинно, поэтому выполняется тело if , а тело else игнорируется.
При num = -5 выражение ложно, поэтому выполняется тело else . В этом слуае игнорируется тело if .
При num = 0 выражение истинно, поэтому выполняет тело равно if , а тело else игнорируется.
Конструкция if. elif. else
Синтаксис конструкции
if выражение_1:
Тело if
elif выражение_2:
Тело elif
else:
Тело else
elif — это сокращение от else if . Этот оператор позволяет нам проверять сразу несколько выражений.
Если условие для if = False , Python оценивает условие блока elif и так далее. Если все условия = False , выполняется тело else .
Для одного if может быть только один else . Но внутри конструкции if. else может быть сколько угодно блоков elif .
Блок-схема конструкции
Пример использования конструкции
# В этой программе мы проверяем, # является ли число положительным, # отрицательным или нулем и # выводим соответствующее выражение. num = 3.4 # Также попробуйте такие варианты: # num = 0 # num = -4.5 if num > 0: print("Положительное число") elif num == 0: print("Ноль") else: print("Отрицательное число")
Если переменная num содержит положительное значение, Python выведет на экран сообщение «Положительное число».
Если num равно 0, напечатается сообщение «Ноль».
Если num содержит отрицательное значение, Python выведет на экран сообщение «Отрицательное число».
Вложенные конструкции
Любое количество блоков if…elif…else можно разместить внутри другого оператора if…elif…else . Отступы — единственный способ отделять разные уровни вложенности. Это делает код сложнее для понимания, поэтому загроможденной вложенности желательно избегать.
# В этой программе мы вводим число, # проверяем, является ли число положительным, # отрицательным или нулем, и выводим # соответствующее сообщение. # На этот раз мы используем вложенную конструкцию. num = float(input("Введите число: ")) if num >= 0: if num == 0: print("Ноль") else: print("Положительное число") else: print("Отрицательное число")
Вывод 1:
Введите число: 5
Положительное число
Вывод 2:
Введите число: -1
Отрицательное число
Вывод 3:
Введите число: 0
Ноль
Проверка условий, конструкция if/elif/else в Python
Условный оператор if/elif/else, ветвление кода программы
Возможно, самый известный тип инструкций — это конструкция if/elif/else . Часто возникает необходимость, чтобы некоторый код выполнялся только при соблюдении определенного условия или код подлежащий выполнению, должен выбираться исходя из выполнения одного из нескольких взаимоисключающих условий.
Например:
>>> x = int(input("Please enter an integer: ")) # Please enter an integer: 42 >>> if x 0: . x = 0 . print('Negative changed to zero') . elif x == 0: . print('Zero') . elif x == 1: . print('Single') . else: . print('More') # More
Ключевое слово elif является сокращением от else if . Инструкции elif и else могут отсутствовать и не являются обязательными. Инструкция elif может повторяться сколько угодно раз if/elif/else . Такая последовательность инструкций elif является заменой для конструкции switch или case , которые есть в других языках программирования.
Составная инструкция if , elif и else обеспечивает условное выполнение блоков инструкций.
Она имеет следующий синтаксис:
if выражение: блок кода elif выражение: блок кода elif выражение: блок кода . . else: блок кода
Конструкция if вычисляет и оценивает выражения одно за другим, пока одно из них не окажется истинным, затем выполняется соответствующий блок кода . После выполнения блока кода первого истинного ( True ) выражения, последующие инструкции elif / else не вычисляются и не оцениваются, а блоки кода в них не выполняется. Если все выражения ложны ( False ), выполняется блок кода инструкции else , если он присутствует.
В предложениях if и elif в качестве условия можно использовать любое выражение Python. В подобных случаях говорят, что условие используется в логическом контексте. В логическом контексте любое выражение рассматривается как истинное или ложное. Любое ненулевое число или любой непустой контейнер (строка, кортеж, список, словарь, множество) расценивается как истинное значение. Нуль (любого числового типа), None и пустой контейнер расцениваются как ложные значения. Для тестирования значения x в логическом контекстеиспользуйте следующий стиль написания кода:
if x:
Это наиболее ясная и соответствующая духу Python форма кода.
Примеры if/elif/else конструкций
Использование None в конструкции if :
a = None if a is not None: print('a НЕ равно None') else: print('a равно None')
Использование False и True в конструкции if :
bul = False if bul: print('bul = True') else: print('bul = False')
Использование integer числа 0 в конструкции if :
number = 0 if number: print('number не равно 0') else: print('number = 0')
Использование числовых сравнений в конструкции if :
a = 10 b = 20 if a != b and a > b: print('a не равно b и a больше b') else: print('a не равно b и a меньше b')
Вложенные конструкции if :
a = 15 b = 3 if a != b if a > b: print('a больше b') else: print('a меньше b') else: print('a равно b')
Проверка наличия слова в строке str с помощью конструкции if :
string1 = 'Привет мир' string2 = 'мир' if string2 in string1: print('Слово "мир" присутствует в строке "Привет мир"') else: print('Слово "мир" отсутствует в строке "Привет мир"')
Проверка вхождения элемента в список list с помощью конструкции if :
a = 'bc' lst = ['ac', 'bc', 0, 1, 3, 'abc'] if a in lst: print('Значение "bc" входит в список', lst) else: print('Значение "bc" не входит в список', lst)
Проверка вхождения элемента в кортеж tuple с помощью конструкции if :
a = 'bc' tpl = ('ac', 'bc', 0, 1, 3, 'abc') if a in tpl: print('Значение "bc" входит в кортеж', tpl) else: print('Значение "bc" не входит в кортеж', tpl)
Проверка вхождения элемента в множество set с помощью конструкции if :
a = 'bc' set_ = 'ac', 'bc', 0, 1, 3, 'abc'> if a in set_: print('Значение "bc" входит в множество', set_) else: print('Значение "bc" не входит в множество', set_)
Проверка наличия ключа key в словаре dict с помощью конструкции if :
key = 'bc' dct = 'ac':None, 'bc':False, '0':0, '1':3, '3':1, 'abc':True> if key in dct: print('Ключ "bc" присутствует в словаре', dct) else: print('Ключ "bc" отсутствует в словаре', dct)
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Проверка условий, конструкция if/elif/else
- Конструкция if/else в одну строку
- Имитация оператора switch/case
- while, цикл по условию
- Цикл for
- Числовые последовательности для цикла Python
- Практическое применение for/in/else циклов
- Инструкции break, continue и блок else в циклах Python
- Оператор pass
- Конструкция match/case, сопоставление с образцом
Что такое функции if elif else в Python?
Это скорее не функции, а условные конструкции. Они необходимы для того, чтобы выполнять различные блоки кода при определенных условиях. Сама конструкция начинается с условного оператора if (если. ), за ним следует само условие, при соблюдении которого будет выполнен расположенный ниже код. А также с помощью необязательного оператора else (иначе. ) можно указать код, который будет выполнен, если расположенное выше условие не соблюдено (для того, чтобы интерпретатор понимал, что указанный код относится к конкретному условию необходим отступ в 4 пробела):
# данный код выведет сообщение о том, что # число четное, если при делении его на 2 # остаток будет равен нулю. # если условие не будет выполнено (число нечетное), # то будет выведено другое сообщение def odd_or_even(number): if number % 2 == 0: print('The number is even!') else: print('The number is odd!') odd_or_even(4) # => The number is even! odd_or_even(83) # => The number is odd!
Может быть ситуация, когда условий больше, чем 2. Тогда на помощь придет оператор elif (а если. ), с помощью которого можно задать другие условия и выполняемый код при их соблюдении:
# создадим функцию, которая определяет # тип данных переданного ей объекта: # строка это, целое число или цисло с плавающей точкой # или функции этот тип объекта неизвестен def get_object_type(object): if isinstance(object, int): print('This is an integer') elif isinstance(object, str): print('This is a string') elif isinstance(object, float): print('This is a float') else: print('''I don't know what type this object is''') get_object_type(4) # => This is an integer get_object_type('Hello, world!') # => This is a string get_object_type(3.1415926) # => This is a float get_object_type(2, 4, 'foo'>) # => I don't know what type this object is
