0 знаков
9. Условная инструкция if-elif-else в 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
Булевы операторы and
, or
и not
не возвращают булево значение, они всегда вернут один из операндов, например:
'a' and 'b' # => b
'a' and 'b' and 'c' # => c
При использовании оператора and
, значения проверяются слева направо. Мы уже выяснили, что является истинной, а что ложью. Символы a
, b
, c
относятся к «любой непустой строке». Итак, если все элементы истинны, то будет возвращен последний элемент.
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, вспомнили перечень истинных и ложных объектов и познакомились с операторами in
, and
, or
и not
, которые могут существенно упростить написание кода.
В следующем уроке мы будем учиться определять к какому типу данных относится объект и преобразовывать из одного в другой.
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ