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, который содержит только одну инструкцию —
.
В итоге консоль выведет следующие строки:
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 также должны имет отступы от начала строки. Например, в примере выше
не имеет отступа, поэтому она не входит в блок 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 — это оператор if, который является целью другого оператора if. Вложенные операторы if означают оператор if внутри другого оператора if. Да, Python позволяет нам вкладывать операторы if в операторы if. т. е. мы можем поместить оператор if внутри другого оператора if. Синтаксис : Блок -схема вложенного Python.0003 |
: : : : :0003 Здесь пользователь может выбрать один из нескольких вариантов. Операторы if выполняются сверху вниз. Как только одно из условий, управляющих if, становится истинным, выполняется оператор, связанный с этим if, и остальная часть лестницы игнорируется. Если ни одно из условий не выполняется, будет выполнен последний оператор else. Синтаксис : Flowchart of if-elif-else ladder Синтаксис: Выход: Это можно использовать для написания заслуги IF-ELSE. одна строка, в которой требуется только один оператор в обоих блоках if и else. Syntax: Вывод: Условный оператор в Python выполняет различные вычисления или действия в зависимости от того, является ли конкретное логическое ограничение истинным или ложным. Условные операторы обрабатываются операторами IF в Python. В этом руководстве мы увидим, как применять условные операторы в Python. Python, если Заявление используется для операций принятия решений. Он содержит тело кода, который запускается только тогда, когда условие, указанное в операторе if, истинно. Если условие ложно, то запускается необязательный оператор else, который содержит некоторый код для условия else. Если вы хотите обосновать одно условие, в то время как другое условие неверно, вы используете оператор Python if else. Python, если Синтаксис оператора: Блок-схема Python if…else Давайте посмотрим на пример Python if else Заявление: На этом этапе мы увидим, что происходит, когда условие в Python не выполняется. "иначе условие" обычно используется, когда вам нужно судить об одном утверждении на основе другого. Если одно условие не выполняется, то должно быть другое условие, которое должно оправдывать утверждение или логику. Пример : Во многих случаях ваше «иначе условие» не даст желаемого результата. Он выведет неправильный результат, так как в логике программы есть ошибка. В большинстве случаев это происходит, когда вам нужно обосновать более двух утверждений или условий в программе. Пример поможет вам лучше понять эту концепцию. Здесь обе переменные одинаковы (8,8), а вывод программы «x больше, чем y», , что НЕПРАВИЛЬНО . Это связано с тем, что он проверяет первое условие (если условие в Python), и если оно терпит неудачу, то оно распечатывает второе условие (иначе условие) по умолчанию. На следующем шаге мы увидим, как мы можем исправить эту ошибку. Чтобы исправить предыдущую ошибку, допущенную «условием else», мы можем использовать оператор «elif» . Используя условие « elif », вы говорите программе распечатать третье условие или возможность, когда другое условие становится неправильным или неверным. Пример На этом шаге мы увидим, как можно сократить условный оператор. Вместо того, чтобы выполнять код для каждого условия отдельно, мы можем использовать их с одним кодом. Синтаксис Пример : Вместо того, чтобы писать длинный код для условных операторов, Python дает вам свободу писать код коротким и лаконичным способом. Следующий пример демонстрирует вложенный оператор if Python Раскомментируйте строку 2 в приведенном выше коде и закомментируйте строку 3 и снова запустите код Что такое оператор Switch? Оператор switch — это оператор многостороннего перехода, который сравнивает значение переменной со значениями, указанными в операторах case. Язык Python не имеет оператора switch. Python использует отображение словаря для реализации Switch Case в Python Пример Для приведенного выше случая Switch в Python Пример Python 2 Приведенные выше коды являются примерами Python 3. Если вы хотите работать в Python 2, рассмотрите следующий код. i меньше 15
я тоже меньше 12
лестница if-elif-else если (условие):
заявление
Элиф (состояние):
заявление
.
.
еще:
заявление
Flowchart of Python if-elif-else ladder Python3
I
=
20
IF
(I
=
=
10
):
):
956955555):
5):
5):
). 0056
)
elif
(i
=
=
15
):
print
(
"i is 15"
)
elif
(i
=
=
20
):
print
(
"i is 20"
)
else
:
Печать
(
"I нет. один оператор, который будет выполняться внутри блока if, тогда можно использовать сокращение if. Оператор может быть помещен в ту же строку, что и оператор if.
если условие: инструкция
Пример Python If Shorthand Python3
I
=
10
IF
56565656565656565656565656565656565656565656565656565656565656565656565656565656656565656565656565656565656. 956565656565656565656565656565656565656566656566666566666666666666. меньше 15 " )
I меньше 15
Краткое заявление If-Else statement_when_True if condition else statement_when_False
Example of Python if else shorthand Python3
i
=
10
print
(
Верно
)
если
i <
15
иначе
печатать
(
Ложь
5 ) True
ЕСЛИ… Иначе, ELIF и Switch Case
Что такое условные операторы в Python?
Что такое выражение Python If?
, если выражение
Заявление
еще
Заявление
#
#Пример файла для работы с условным оператором
#
деф основной():
х,у =2,8
если (х < у):
st = «х меньше у»
печать (ст)
если __name__ == "__main__":
main()
Что происходит, когда «если условие» не выполняется
Как использовать "иначе условие"
#
#Пример файла для работы с условным оператором
#
деф основной():
х, у =8,4
если (х < у):
st = «х меньше у»
еще:
st = «х больше, чем у»
печать (ст)
если __name__ == "__main__":
main()
Когда «иначе условие» не работает
#
#Пример файла для работы с условным оператором
#
деф основной():
х, у =8,8
если (х < у):
st = «х меньше у»
еще:
st = «х больше, чем у»
печать (ст)
если __name__ == "__main__":
главная()
Как использовать условие «elif»
#
#Пример файла для работы с условным оператором
#
деф основной():
х, у =8,8
если (х < у):
st = «х меньше у»
Элиф (х == у):
st = "x такой же, как y"
еще:
st="х больше, чем у"
печать (ст)
если __name__ == "__main__":
главная()
Как выполнить условный оператор с минимальным кодом
A Если B иначе C
деф основной():
х, у = 10,8
st = "x меньше y", если (x < y), иначе "x больше или равно y"
печать (ст)
если __name__ == "__main__":
главная()
Python Вложенный оператор if
всего = 100
#страна = "США"
страна = "Австралия"
если страна == "США":
если всего <= 50:
print("Стоимость доставки 50$")
Всего Элиф <= 100:
print("Стоимость доставки $25")
Всего Элиф <= 150:
print("Стоимость доставки $5")
еще:
распечатать("БЕСПЛАТНО")
если страна == "AU":
если всего <= 50:
print("Стоимость доставки 100$")
еще:
печать("БЕСПЛАТНО")
Оператор Switch Case в Python
функция(аргумент){
переключатель(аргумент) {
случай 0:
вернуть «Это случай ноль»;
Дело 1:
вернуть «Это Дело Один»;
случай 2:
return "Это второй случай";
по умолчанию:
вернуть «ничего»;
};
};
def SwitchExample (аргумент):
переключатель = {
0: «Это нулевой случай»,
1: «Это Дело Один»,
2: «Это дело второе»,
}
вернуть switcher. get(аргумент, "ничего")
если __name__ == "__main__":
аргумент = 1
печать (SwitchExample(аргумент))
# Если Заявление
#Пример файла для работы с условным оператором
#
деф основной():
х,у =2,8 если (х < у):
st = «х меньше у»
печать ул если __name__ == "__main__":
основной()
# Как использовать "иначе условие"
#Пример файла для работы с условным оператором
#
деф основной():
х, у =8,4 если (х < у):
st = «х меньше у»
еще:
st = «х больше, чем у»
печать ул если __name__ == "__main__":
основной()
# Когда "иначе условие" не работает
#Пример файла для работы с условным оператором
#
деф основной():
х, у =8,8 если (х < у):
st = «х меньше у»
еще:
st = «х больше, чем у»
печать ул если __name__ == "__main__":
основной()
# Как использовать условие "elif"
#Пример файла для работы с условным оператором
#
деф основной():
х, у =8,8 если (х < у):
st = «х меньше у» Элиф (х == у):
st = "x такой же, как y" еще:
st="х больше, чем у"
печать ул если __name__ == "__main__":
основной()
# Как выполнить условный оператор с минимальным кодом
деф основной():
х, у = 10,8
st = "x меньше y", если (x < y), иначе "x больше или равно y"
печать ул если __name__ == "__main__":
основной()
# Вложенный оператор ЕСЛИ
всего = 100
#страна = "США"
страна = "Австралия"
если страна == "США":
если всего <= 50:
print "Стоимость доставки $50"
Всего Элиф <= 100:
print "Стоимость доставки $25"
Всего Элиф <= 150:
напечатать "Стоимость доставки $5"
еще:
распечатать "БЕСПЛАТНО"
если страна == "AU":
если всего <= 50:
print "Стоимость доставки $100"
еще:
распечатать "БЕСПЛАТНО"
# Оператор Switch
def SwitchExample (аргумент):
переключатель = {
0: «Это нулевой случай»,
1: «Это Дело Один»,
2: «Это дело второе»,
}
вернуть switcher.