Python | Условная конструкция if
Последнее обновление: 13.01.2022
Условные конструкции используют условные выражения и в зависимости от их значения направляют выполнение программы по одному из путей. Одна из таких конструкций — это конструкция if. Она имеет следующее формальное определение:
if логическое_выражение: инструкции [elif логическое выражение: инструкции] [else: инструкции]
В самом простом виде после ключевого слова if идет логическое выражение. И если это логическое выражение возвращает True,
то выполняется последующий блок инструкций, каждая из которых должна начинаться с новой строки и должна иметь отступы от начала выражения if
(отступ желательно делать в 4 пробела или то количество пробелов, которое кратно 4):
language = "english" if language == "english": print("Hello") print("End")
Поскольку в данном случае значение переменной language равно «english», то будет выполняться блок if, который содержит только одну инструкцию —
print("Hello")
.
Hello End
Обратите внимание в коде на последнюю строку, которая выводит сообщение «End». Она не имеет отступов от начала строки, поэтому она не принадлежит к блоку if и будет выполняться в любом случае, даже если выражение в конструкции if возвратит False.
Но если бы мы поставили бы отступы, то она также принадлежала бы к конструкции if:
language = "english" if language == "english": print("Hello") print("End")
Блок else
Если вдруг нам надо определить альтернативное решение на тот случай, если выражение в if возвратит False, то мы можем использовать блок else:
language = "russian" if language == "english": print("Hello") else: print("Привет") print("End")
Если выражение language == "english"
возвращает True, то выполняется блок if, иначе выполняется блок else.
И поскольку в данном случае условие
language == "english"
возвращает False, то будут выполняться инструкция из блока else
.
Причем инструкции блока else также должны имет отступы от начала строки. Например, в примере выше
print("End")
не имеет отступа, поэтому она не входит в блок else
и будет выполнятьься вне зависимости, чему равно условие language == "english"
.
То есть консоль нам выведет следующие строки:Привет End
Блок else также может иметь несколько инструкций, которые должны иметь отступ от начала строки:
language = "russian" if language == "english": print("Hello") print("World") else: print("Привет") print("мир")
elif
Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки elif, после которого идет блок инструкций.
language = "german" if language == "english": print("Hello") print("World") elif language == "german": print("Hallo") print("Welt") else: print("Привет") print("мир")
Сначала Python проверяет выражение if
. Если оно равно True, то выполнениются инструкции из блока if. Если это условие возвращает False, то Python
проверяет выражение из
elif
.
Если выражение после elif
True
, то выполняются инструкции из блока elif
. Но если оно равно
False
то выполняются инструкции из блока else
При необходимости можно определить несколько блоков elif
для разных условий. Например:
language = "german" if language == "english": print("Hello") elif language == "german": print("Hallo") elif language == "french": print("Salut") else: print("Привет")
Вложенные конструкции if
Конструкция if в свою очередь сама может иметь вложенные конструкции if:
language = "english" daytime == "morning" if language == "english": print("English") if daytime == "morning": print("Good morning") else: print("Good evening")
Здесь конструкция if содержит вложенную конструкцию if/else. То есть если переменная language равна «english», тогда вложенная
конструкция if/else дополнительно проверяет значение переменной daytime — равна ли она строке «morning» ли нет. И в данном случае мы получим следующий консольный вывод:
English Good morning
Стоит учитывать, что вложенные выражения if также должны начинаться с отступов, а инструкции во вложенных конструкциях также должны иметь отступы. Отступы, расставленные не должным образом, могут изменить логику программы. Так, предыдущий пример НЕ аналогичен следующему:
language = "english" daytime = "morning" if language == "english": print("English") if daytime == "morning": print("Good morning") else: print("Good evening")
Подобным образом можно размещать вложенные конструкции if/elif/else в блоках elif и else:
language = "russian" daytime = "morning" if language == "english": if daytime == "morning": print("Good morning") else: print("Good evening") else: if daytime == "morning": print("Доброе утро") else: print("Добрый вечер")
НазадСодержаниеВперед
if else в Python
Зачастую нам не нужно, чтобы в программе выполнился весь код. Вместо этого мы можем сделать так, чтобы определенный кусочек кода запускался только при выполнении определенного условия, а другая часть кода запускалась, если условие не выполнено. Вот тут и пригодятся условные операторы if и else.
Условные операторы if else в Python позволяют четко и компактно управлять логическим потоком программы. Они представляют собой ответвления – как развилки на дороге – которые изменяют способ выполнения кода и управляют процессом принятия решений.
Сегодня мы рассмотрим основы работы с операторами if
, if...else
и elif
в Python, а также разберем всё на примерах.
Итак, давайте начнем!
Синтаксис базового оператора if
Оператор if
в Python, по существу, говорит:
«Если это выражение оценивается как верное (True
), то нужно запустить один раз код, следующий за выражением if
. Если это выражение ложно (т.е. False
), то этот блок кода запускать не нужно».
Общий синтаксис if
-блока выглядит следующим образом:
if условие: выполняй вот этот блок
Состав if
-блока:
- Ключевое слово
if
, с которого и начинается блок кода. - Затем идет условие. Его значение может оцениваться как истинное (
True
) или ложное (False
). Круглые скобки вокруг условия необязательны, но они помогают улучшить читаемость кода, когда присутствует более одного условия. - Двоеточие отделяет условие от следующих за ним инструкций.
- Новая строка и отступ из 4 пробелов (размер отступа оговорен в соглашениях по стилю Python).
- Наконец, идет само тело конструкции. Это код, который будет запускаться только в том случае, если наше условие выполняется, т.е. имеет значение
True
.В теле может быть несколько инструкций. В этом случае нужно быть внимательным: все они должны иметь одинаковый уровень отступа.
[python_ad_block]
Возьмем следующий пример:
a = 1 b = 2 if b > a: print(" b is in fact bigger than a") # Output: b is in fact bigger than a
В приведенном выше примере мы создали две переменные, a
и b
, и присвоили им значения 1 и 2 соответственно.
Фраза в операторе print()
выводится в консоль, потому что условие b > a
оценивается как True
. Раз условие истинно, следующий за ним код запускается. А если бы a
было больше b
, ничего бы не случилось. Код бы не запустился и ничего бы не вывелось в консоль.
Изменим условие:
a = 1 b = 2 if a > b print("a is in fact bigger than b")
Поскольку у нас a
меньше b
, условие оценивается как False
, и в консоль ничего не выводится.
Как работает оператор if else в Python?
Оператор if
запускает код только при выполнении условия. Иначе ничего не происходит.
Если же мы хотим, чтобы какая-то часть кода запускалась, когда условие не выполняется, нам нужен еще один оператор – else
.
Синтаксис блока if..else
выглядит следующим образом:
if условие: выполнить, если условие истинно else: выполнить, если условие ложно
По сути оператор if..else
в Python говорит:
«Когда выражение после if
оценивается как истинное (True
), нужно выполнить следующий за ним код. Но если оно оценивается как ложное (False
), нужно выполнить код, следующий за оператором else
».
Оператор else
записывается на новой строке после последней строки кода с отступом и не может быть записан сам по себе. Оператор
else
является частью оператора if
.
Код, следующий за else
, также должен иметь отступ в 4 пробела, чтобы показать, что он является частью конструкции else
.
Код, следующий за оператором else
, выполняется только тогда, когда условие в if
имеет значение False
. Если условие в блоке if
имеет значение True
и, следовательно, запущен код после if
, то код в блоке else
не запустится.
a = 1 b = 2 if a < b: print(" b is in fact bigger than a") else: print("a is in fact bigger than b")
Здесь строка кода, следующая за оператором else
, print(" a is in fact bigger than b")
никогда не будет запущена. Условие в блоке
if
имеет значение True
, поэтому выполняется только эта часть кода.
Блок else
запускается в следующем случае:
a = 1 b = 2 if a > b: print(" a is in fact bigger than b") else: print("b is in fact bigger than a") # Output: b is in fact bigger than a
Имейте в виду, что нельзя написать какой-либо другой код между if
и else
. Вы получите SyntaxError
, если сделаете это:
if 1 > 2: print("1 is bigger than 2") print("hello world") else: print("1 is less than 2") # Output: # File "<stdin>", line 3 # print("hello world") # ^ # SyntaxError: invalid syntax
От редакции Pythonist. Также рекомендуем почитать «Блок else в циклах».
Как работает elif в Python?
Что, если мы хотим иметь больше, чем два варианта?
Вместо того, чтобы говорить: «Если первое условие истинно, сделай одно, в противном случае сделай другое», мы говорим: «Если это условие не истинно, попробуй другое, но если все условия не выполняются, сделай вот это».
elif
означает else
+ if
.
Базовый синтаксис данной конструкции выглядит так:
if первое_условие: выполнить одно elif второе_условие: выполнить другое else: выполнить это, если все предыдущие условия ложны
Мы можем использовать более одного оператора elif
. Это дает нам больше условий и больше возможностей.
Например:
x = 1 if x > 10: print(" x is greater than 10!") elif x < 10: print("x is less than 10!") elif x < 20 : print("x is less than 20!") else: print("x is equal to 10") # Output: x is less than 10!
В этом примере оператор if
проверяет конкретное условие, блоки elif
– это две альтернативы, а блок else
— последнее решение, если все предыдущие условия не были выполнены.
Важно помнить о порядке, в котором вы пишете свои условия elif
.
В предыдущем примере, если бы мы написали:
x = 1 if x > 10: print(" x is greater than 10!") elif x < 20 : print("x is less than 20!") elif x < 10: print("x is less than 10!") else: print("x is equal to 10")
была бы выведена строка x is less than 20!
, потому что это условие стояло раньше.
Оператор elif
упрощает написание кода. Вы можете использовать его вместо многочисленных операторов if..else
, которые быстро «плодятся» по мере роста и усложнения программ.
Если все операторы elif
не рассматриваются и имеют значение False
, тогда и только тогда будет выполняться код, следующий за оператором else
.
Например, вот случай, когда будет выполняться инструкция else
:
x = 10 if x > 10: print(" x is greater than 10!") elif x < 10: print("x is less than 10!") elif x > 20 : print("x is greater than 20!") else: print("x is equal to 10") # Output: x is equal to 10
Заключение
Вот и все!
Это основные принципы if
, if..else
и elif
в Python, которые помогут вам начать работу с условными операторами.
В дальнейшем конструкции могут быть более сложными.
Условные операторы также могут быть вложены в другие условные операторы, в зависимости от проблемы, которую вы пытаетесь решить, и логики вашего решения.
Спасибо за чтение и успехов в написании кода!
Перевод статьи «Python If Else Statement – Conditional Statements Explained».
Python If Else — GeeksforGeeks
В реальной жизни случаются ситуации, когда нам нужно принять какие-то решения и на основе этих решений мы решаем, что нам делать дальше. Подобные ситуации возникают и в программировании, когда нам нужно принять какие-то решения и на основе этих решений мы выполним следующий блок кода. Операторы принятия решений в языках программирования определяют направление (поток управления) потока выполнения программы.
Типы потока управления в Python
В языке программирования Python типы операторов потока управления следующие:
- Оператор if
- Оператор if-else
- Оператор вложенного if
- Лестница if-elif-else
9001 Оператор if
Оператор if является наиболее простым оператором принятия решений. Он используется, чтобы решить, будет ли выполняться определенный оператор или блок операторов или нет.
Синтаксис :
если условие : # Операторы для выполнения, если # условие истинно
Здесь условие после оценки будет либо истинным, либо ложным. если оператор принимает логические значения — если значение истинно, то он выполнит блок операторов под ним, иначе нет.
Как мы знаем, Python использует отступ для идентификации блока. Таким образом, блок под оператором if будет идентифицирован, как показано в следующем примере:
, если условие: заявление1 заявление2 # Здесь, если условие истинно, если блок # будет считать, что внутри находится только оператор 1 # его блок.Блок-схема оператора if Python
Блок-схема оператора if Python
Пример оператора Python if
Поскольку условие, присутствующее в операторе if, ложно. Итак, блок под оператором if выполняется.
Python3
|
Вывод:
Я не нахожусь в ifоператор if-else
Оператор if сам по себе говорит нам, что если условие истинно, он выполнит блок операторов, а если условие ложно, он выиграет ‘т. Но если мы хотим сделать что-то еще, если условие ложно, мы можем использовать 9Оператор 0029 else с оператором if для выполнения блока кода, когда условие if ложно.
Синтаксис :
если (условие): # Выполняет этот блок, если # условие верно еще: # Выполняет этот блок, если # условие ложноБлок-схема оператора Python if-else
Блок-схема оператора Python is-else
Пример оператора Python if-else
Блок кода, следующий за оператором else, выполняется как условие, присутствующее в оператор if становится ложным после вызова оператора, которого нет в блоке (без пробелов).
Python3
|
Вывод:
i больше 15 я в другом блоке я не в if и не в else Блок
Example of Python if else statement in a list comprehension
Python3
вложенный оператор if |
:
:
:
:
:0003
i меньше 15 я тоже меньше 12лестница if-elif-else
Здесь пользователь может выбрать один из нескольких вариантов. Операторы if выполняются сверху вниз. Как только одно из условий, управляющих if, становится истинным, выполняется оператор, связанный с этим if, и остальная часть лестницы игнорируется. Если ни одно из условий не выполняется, будет выполнен последний оператор else.
Синтаксис :
если (условие): заявление Элиф (состояние): заявление . . еще: заявлениеFlowchart of Python if-elif-else ladder
Flowchart of if-elif-else ladder
Example of Python if-elif-else ladderPython3
|