if else в Python

Зачастую нам не нужно, чтобы в программе выполнился весь код. Вместо этого мы можем сделать так, чтобы определенный кусочек кода запускался только при выполнении определенного условия, а другая часть кода запускалась, если условие не выполнено. Вот тут и пригодятся условные операторы if и else.

Условные операторы if else в Python позволяют четко и компактно управлять логическим потоком программы. Они представляют собой ответвления – как развилки на дороге – которые изменяют способ выполнения кода и управляют процессом принятия решений.

Сегодня мы рассмотрим основы работы с операторами if, if...else и elif в Python, а также разберем всё на примерах.

Итак, давайте начнем!

Синтаксис базового оператора if

Оператор if в Python, по существу, говорит:

«Если это выражение оценивается как верное (True), то нужно запустить один раз код, следующий за выражением if. Если это выражение ложно (т.е. False), то этот блок кода запускать не нужно».

Общий синтаксис if-блока выглядит следующим образом:

if условие: 
    выполняй вот этот блок

Состав if-блока:

  • Ключевое слово if, с которого и начинается блок кода.
  • Затем идет условие. Его значение может оцениваться как истинное (True) или ложное (False). Круглые скобки вокруг условия необязательны, но они помогают улучшить читаемость кода, когда присутствует более одного условия.
  • Двоеточие отделяет условие от следующих за ним инструкций.
  • Новая строка и отступ из 4 пробелов (размер отступа оговорен в соглашениях по стилю Python).
  • Наконец, идет само тело конструкции. Это код, который будет запускаться только в том случае, если наше условие выполняется, т.е. имеет значение True. В теле может быть несколько инструкций. В этом случае нужно быть внимательным: все они должны иметь одинаковый уровень отступа.
python logo

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

×

Возьмем следующий пример:

a = 1
b = 2

if b > a:
    print(" b is in fact bigger than a")

# Output: b is in fact bigger than a

В приведенном выше примере мы создали две переменные, a и b, и присвоили им значения 1 и 2 соответственно.

Фраза в операторе print() выводится в консоль, потому что условие b > a оценивается как True. Раз условие истинно, следующий за ним код запускается. А если бы a было больше b, ничего бы не случилось. Код бы не запустился и ничего бы не вывелось в консоль.

Изменим условие:

a = 1
b = 2

if a > b
    print("a is in fact bigger than b")

Поскольку у нас a меньше b, условие оценивается как False, и в консоль ничего не выводится.

Как работает оператор if else в Python?

Оператор if запускает код только при выполнении условия. Иначе ничего не происходит.

Если же мы хотим, чтобы какая-то часть кода запускалась, когда условие не выполняется, нам нужен еще один оператор – else.

Синтаксис блока if..else выглядит следующим образом:

if условие:
    выполнить, если условие истинно
else: 
    выполнить, если условие ложно

По сути оператор if..else в Python говорит:

«Когда выражение после if оценивается как истинное (True), нужно выполнить следующий за ним код. Но если оно оценивается как ложное (False), нужно выполнить код, следующий за оператором else».

Оператор else записывается на новой строке после последней строки кода с отступом и не может быть записан сам по себе. Оператор else является частью оператора if.

Код, следующий за else, также должен иметь отступ в 4 пробела, чтобы показать, что он является частью конструкции else.

Код, следующий за оператором else, выполняется только тогда, когда условие в if имеет значение False. Если условие в блоке if имеет значение True и, следовательно, запущен код после if, то код в блоке else не запустится.

a = 1
b = 2

if a < b:
    print(" b is in fact bigger than a")
else:
    print("a is in fact bigger than b")

Здесь строка кода, следующая за оператором else, print(" a is in fact bigger than b") никогда не будет запущена. Условие в блоке if имеет значение True, поэтому выполняется только эта часть кода.

Блок else запускается в следующем случае:

a = 1
b = 2

if a > b:
    print(" a is in fact bigger than b")
else:
    print("b is in fact bigger than a")
# Output: b is in fact bigger than a

Имейте в виду, что нельзя написать какой-либо другой код между if и else. Вы получите SyntaxError, если сделаете это:

if 1 > 2:
   print("1 is bigger than 2")
print("hello world")
else:
   print("1 is less than 2")
# Output:
# File "<stdin>", line 3
# print("hello world")
# ^
# SyntaxError: invalid syntax

От редакции Pythonist. Также рекомендуем почитать «Блок else в циклах».


Как работает elif в Python?

Что, если мы хотим иметь больше, чем два варианта?

Вместо того, чтобы говорить: «Если первое условие истинно, сделай одно, в противном случае сделай другое», мы говорим: «Если это условие не истинно, попробуй другое, но если все условия не выполняются, сделай вот это».

elif означает else + if.

Базовый синтаксис данной конструкции выглядит так:

if первое_условие:
    выполнить одно
elif второе_условие:
    выполнить другое
else:
    выполнить это, если все предыдущие условия ложны

Мы можем использовать более одного оператора elif. Это дает нам больше условий и больше возможностей.

Например:

x = 1

if x > 10:
    print(" x is greater than 10!")
elif x < 10:
      print("x is less than 10!")
elif x < 20 :
      print("x is less than 20!")
else:
     print("x is equal to 10")
# Output: x is less than 10!

В этом примере оператор if проверяет конкретное условие, блоки elif – это две альтернативы, а блок else — последнее решение, если все предыдущие условия не были выполнены.

Важно помнить о порядке, в котором вы пишете свои условия elif.

В предыдущем примере, если бы мы написали:

x = 1

if x > 10:
    print(" x is greater than 10!")
elif x < 20 :
      print("x is less than 20!")
elif x < 10:
      print("x is less than 10!")
else:
     print("x is equal to 10")

была бы выведена строка x is less than 20!, потому что это условие стояло раньше.

Оператор elif упрощает написание кода. Вы можете использовать его вместо многочисленных операторов if..else, которые быстро «плодятся» по мере роста и усложнения программ.

Если все операторы elif не рассматриваются и имеют значение False, тогда и только тогда будет выполняться код, следующий за оператором else.

Например, вот случай, когда будет выполняться инструкция else:

x = 10

if x > 10:
    print(" x is greater than 10!")
elif x < 10:
      print("x is less than 10!")
elif x > 20 :
      print("x is greater than 20!")
else:
     print("x is equal to 10")
# Output: x is equal to 10

Заключение

Вот и все!

Это основные принципы if, if..else и elif в Python, которые помогут вам начать работу с условными операторами.

В дальнейшем конструкции могут быть более сложными.

Условные операторы также могут быть вложены в другие условные операторы, в зависимости от проблемы, которую вы пытаетесь решить, и логики вашего решения.

Спасибо за чтение и успехов в написании кода!

Перевод статьи «Python If Else Statement – Conditional Statements Explained».