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