Codebra
29 января 2026 в 18:31

Урок 9. Условная инструкция if-elif-else в Python

Подробно разберемся с условной инструкцией if в Python для управления ходом выполнения программы.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.

Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.

📝 Кратко
  • Условная конструкция if позволяет делать ответвления программы, тем самым вы можете управлять ходом выполнения программы.
  • Ключевые слова if, elif и else используются в условной конструкции.
  • Ключевое слово if всегда указывается первым в условной конструкции.
  • С помощью elif можно добавить другие условия, которые будут выполняться после проверки условия if.
  • Блок else выполнится, только если все условия в if и elif ложные.
  • В Python блок кода оформляется обязательным отступом.
  • К истинным значениям в Python относятся любое число не равно нулю, любая непустая строка и любой непустой объект.
  • Оператор in позволяет определить наличие элемента в последовательности, например, в строке или списке.
  • Булевы операторы and, or и not возвращают один из операндов, а не булево значение.
  • Внутри условных инструкций можно использовать другие инструкции, включая условные.

В предыдущем уроке мы научились форматировать строки с использованием метода format() и f-строк. Сейчас немного отвлечемся от работы с типами, чтобы лучше понять необходимость теории из следующего урока.

Условная конструкция if

Условная конструкция if позволяет делать ответвления программы при выполнении заданного условия. Мы ее немного касались в ознакомительном уроке, а сейчас рассмотрим более подробно.

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

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

Проще рассмотреть на примере:

a = 2

if (a == 2):
    print("Два")
elif (a == 3):
    print("Три")
else:
    print("Другое число")

Как вы уже поняли, программа выведет «Два», так как условие a == 2 истинно (т.е. возвращает True):

print(a == 2) # => True       

Обратите внимание, после записанного в скобках условия ставится знак «двоеточие», и последующий блок кода оформляется с отступом (табуляцией). В Python блок кода оформляется обязательным отступом, иначе интерпретатор сочтет это ошибкой. Например:

# Правильно
if (a == 2):
    print("Цифра")
    print("Два")

# Неправильно
if (a == 2):
print("Цифра")
print("Два")

В следующем примере будет выведено слово «Цифра», только если a равно 2, а слово «Два» будет выводиться независимо от условия:

if (a == 2):
    print("Цифра")
print("Два")

Теперь разберемся, что в Python является истинным (True), а что ложным (False).

К истинным значениям в Python относятся:

  • любое число не равно нулю;
  • любая непустая строка;
  • любой непустой объект.

К ложным значениям в Python относятся:

  • ноль (0);
  • None;
  • пустая строка;
  • пустой объект.

К примеру, узнать пустой список или нет можно так:

l = [1, 2, 3, 4, 5]
if (l):
    print("Не пуст")
else:
    print("Пуст")

Операторы сравнения уже были рассмотрены ранее. Чтобы не возвращаться вам назад, вот они:

  • a == b – проверяет, равны ли оба операнда и возвращает истину, если это так;
  • a != b – проверяет, равны ли оба операнда и возвращает истину, если они различны;
  • a > b – возвращает истину, если левый операнд (a), больше правого операнда (b);
  • a < b – возвращает истину, если левый операнд (a), меньше правого операнда (b);
  • a >= b – возвращает истину, если левый операнд (a), больше или равен правому операнду (b);
  • a <= b – возвращает истину, если левый операнд (a), меньше или равен правому операнду (b).

Обратите внимание, равенство проверяется при помощи двойного символа равно. Один символ «равно» обозначает операцию присвоения. Еще один пример с операторами сравнения:

if a > b:
    print("a больше b")
elif a < b:
    print("b больше a")
else:
    print("a и b равны")       

Кстати, круглые скобки, которые использовались в условиях первого примера, необязательны, т.е. можно записывать условие без скобок.

Оператор in

В Python есть удобный оператор in, позволяющий определить наличие элемента в последовательности, например, в строке или списке:

'a' in 'abcdef' # => True
'Hello' in 'Hello, World!' # => True
1 in [1, 2, 3, 4, 5] # => True       

Операторы and, or и not

Булевы операторы andor и not не возвращают булево значение, они всегда вернут один из операндов, например:

'a' and 'b' # => b
'a' and 'b' and 'c' # => c   

При использовании оператора and, значения проверяются слева направо. Мы уже выяснили, что является истинной, а что ложью. Символы abc относятся к «любой непустой строке». Итак, если все элементы истинны, то будет возвращен последний элемент.

0 and 'b' # => 0
'a' and [] and 'c' # => []       

В примере выше есть ложные объекты. В таком случае оператор and вернет первый ложный объект. В случае с оператором or, будет возвращаться первый истинный объект и, только если все ложные, вернет последний ложный объект.

Еще раз скажу: операторы and и or возвращают не True и False, а один из операндов (хотя, в условной конструкции это будет значить одно и то же).

Оператор not инвертирует логическое значение операнда. Если операнд ложен, то будет возвращено True, иначе False. Оператор not в Python возвращает True или False, а не операнд:

not 0 and 'b' # => b
'a' and not []# => True

Вложенные условные инструкции

В Python, как и в других языках программирования, внутри условных инструкций можно использовать другие инструкции, включая те же условные. Т.е. вы можете вкладывать одну инструкцию в другую до бесконечности, в пределах разумного, конечно. Главное не забывать про обязательные отступы:

Пример

if (a > 0): # 0 пробелов
    if (a < 3): # 4 пробела или одна табуляция
        if (a == 2): # 8 пробелов или две табуляции
            ... # 12 пробелов или три табуляции

В этом уроке мы научились использовать условную инструкцию if-elif-else в Python, вспомнили перечень истинных и ложных объектов и познакомились с операторами inandor и not, которые могут существенно упростить написание кода.

В следующем уроке мы будем учиться определять к какому типу данных относится объект и преобразовывать из одного в другой.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.