Условия нужны чтобы выполнять различные блоки кода в зависимости от истинности того или иного логического выражения
В 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 3.10 был добавлен новый функционал - сопоставление с шаблонами с помощью ключевых слов match и case. В статье также рассматривается производительность match/case по сравнению с if/else.
В этой статье описано, что означают различные классы исключений. Также рассмотрено создание собственных классов исключений.