Условные операторы в Python - как управлять логикой программы с помощью if, elif и else

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

Они имеют следующий синтаксис:

if условие:
    . . .
elif условие:
    . . .
else:
    . . . 

Может быть сколько угодно блоков elif. Блок else выполняется, если ни одно условие не выполняется. Первым всегда идет if, а последним - else Допустим, нужно написать программу, которая будет отвечать на сообщение от пользователя. Давайте сделаем это:

message = input()

if message == "Привет":
    print("Привет! Рад тебя видеть")
elif message == "Как дела?":
    print("Хорошо")
elif message == "Что делаешь?":
    print("Программирую")
else:
    print("Я не могу ответить на ваше сообщение :(")

Как видно, я не указал условие после ключевого слова else. Это сделано для того, чтобы под этот случай попадали любые сообщения, которые не совпали с шаблонами выше. Например, если я введу при запуске программы dfdfadbhfgiehfdgi, то это сообщение совпадет только с блоком else и будет выведен ответ - Я не могу ответить на ваше сообщение :(.

Тип условия

Условие должно иметь тип bool Но вы можете встретить такое странное условие

x = 2

if x:
    print('x is not none')

В этом случае в условии стоит просто x. Тут проверяется, является ли переменная x истинной, т.е. производится приведение типов. Если значение не равно 0, None, False, пустой коллекции или пустой строке, то выполнится тело условной конструкции. Подробнее вы можете прочитать в нашей статье про переменные и их типы

Вложенные условия

Условия могут быть вложены одно в другое:

a = 1
b = 2

if a and b:
    if a > b:
        print('a больше b, a и b не равны 0')
    elif a < b:
        print('a меньше b, a и b не равны 0')
    elif a == b:
        print('a равно b, a и b не равны 0')
else:
    print('a или b равно нулю')

Первое условие if a and b проверяет, что оба значения (a и b) являются истинными (не равны 0). Поскольку a = 1 и b = 2, это условие истинно. Внутри этого блока есть еще один блок if-elif-else:
Первое условие if a > b проверяет, что a больше b. Поскольку 1 не больше 2, это условие ложно. Второе условие elif a < b проверяет, что a меньше b. Поскольку 1 меньше 2, это условие истинно, и выполняется соответствующий блок кода. Третье условие elif a == b проверяет, что a равно b. Поскольку 1 не равно 2, это условие ложно. Таким образом, в данном случае будет выведено сообщение: a меньше b, a и b не равны 0


ООП. Введение в объектно-ориентированное программирование в Python

Объектно-ориентированное программирование - одна из самых распространенных парадигм. Знание ООП позволит сделать код более гибким и масштабируемым

Модули в языке Python. Разбиение программ на модули. Установка сторонних библиотек

Для написания сложных программ необходимо использовать сторонние библиотеки. Они позволяют использовать готовый функционал. Также можно использовать модули для компоновки вашего приложения.

Pattern matching в Python - конструкция match case

В Python 3.10 был добавлен новый функционал - сопоставление с шаблонами с помощью ключевых слов match и case. В статье также рассматривается производительность match/case по сравнению с if/else.

Классы исключений. Создание собственных исключений

В этой статье описано, что означают различные классы исключений. Также рассмотрено создание собственных классов исключений.