Подробно об операторе выбора If-elif-else в Python
Принятие решений – самый важный аспект почти всех языков программирования. Как следует из названия, принятие решений позволяет нам запустить определенный блок кода для конкретного решения. Здесь принимаются решения о действительности конкретных условий. Проверка условий – это основа принятия решений.
В python принятие решения осуществляется с помощью операторов выбора if-else.
Оператор | Описание |
---|---|
if | Оператор if используется для проверки определенного условия. Если условие истинно, будет выполнен блок кода(if-block). |
if-else | Оператор if-else аналогичен оператору if, за исключением того факта, что он также предоставляет блок кода для ложного случая проверяемого условия. Если условие, указанное в операторе if, ложно, то будет выполнен оператор else. |
Nested if | Вложенные операторы if позволяют нам использовать if-else внутри внешнего оператора if. |
Отступы в Python
Для достижения простоты программирования в python не используются круглые скобки для кода уровня блока. В Python для объявления блока используется отступ. Если два оператора находятся на одном уровне отступа, то они являются частью одного и того же блока. Как правило, для отступов операторов используются четыре пробела, что является типичным размером отступа в Python.
Отступы – это наиболее используемая часть языка Python, поскольку в них объявляется блок кода. Все операторы одного блока имеют одинаковый уровень отступа. Мы увидим, как на самом деле происходит отступ при принятии решений в Python.
Оператор if
Оператор if используется для проверки определенного условия, и если условие истинно, он выполняет блок кода, известный как блок if. Условием оператора if может быть любое допустимое логическое выражение, которое может быть оценено как истинное или ложное.
Синтаксис оператора if приведен ниже.
Пример 2: Программа для печати наибольшего из трех чисел.
Оператор if-else
Оператор if-else предоставляет блок else в сочетании с оператором if, который выполняется в случае ложного условия.
Если условие истинно, то выполняется блок if. В противном случае выполняется блок else.
Синтаксис оператора if-else приведен ниже.
Пример 1: Программа для проверки того, имеет ли человек право голосовать или нет.
Пример 2: Программа для проверки четности числа.
Оператор elif
Оператор elif позволяет нам проверять несколько условий и выполнять конкретный блок операторов в зависимости от истинного условия среди них. В нашей программе может быть любое количество операторов elif в зависимости от наших потребностей. Однако использовать elif необязательно.
Оператор elif работает как оператор лестничной диаграммы if-else-if в C. За ним должен следовать оператор if.
Оператор if else в Python
При изучении программирования в качестве практики часто приходится создавать «идеальные программы», которые в реальном мире работают совсем не так.
Иногда, например, нужно исполнить ряд инструкций только в том случае, если соблюдаются определенные условия. Для обработки таких ситуаций в языках программирования есть операторы управления. В дополнение к управлению потоком выполнения программы эти операторы используются для создания циклов или пропуска инструкций, когда какое-то условие истинно.
Операторы управления бывают следующих типов:
В этом уроке речь пойдет о первых трех операторах управления.
Оператор if
Синтаксис оператора if следующий:
Стоит обратить внимание, что у каждой инструкции в блоке if одинаковый отступ от слова if. Многие языки, такие как C, C++, Java и PHP, используют фигурные скобки ( <> ), чтобы определять начало и конец блока, но в Python используются отступы.
Когда выполняется инструкция if, проверяется условие. Если условие истинно, тогда все инструкции в блоке if выполняются. Но если условие оказывается неверным, тогда все инструкции внутри этого блока пропускаются.
Инструкции следом за условием if, у которых нет отступов, не относятся к блоку if. Например, — это не часть блока if, поэтому она будет выполнена в любом случае.
Стоит обратить внимание, что во втором случае, когда условие не истинно, инструкция внутри блока if пропускается. В этом примере блок if состоит из одной инструкции, но их может быть сколько угодно, главное — делать отступы.
Рассмотрим следующий код:
Здесь важно обратить внимание, что только выражения на строках 3, 4 и 5 относятся к блоку if. Следовательно, они будут исполнены только в том случае, когда условие if будет истинно. Но инструкции на строках 7 и 8 выполнятся в любом случае.
Консоль Python реагирует иначе при использовании операторов управления прямо в ней. Стоит напомнить, что для разбития выражения на несколько строк используется оператор продолжение ( \ ). Но в этом нет необходимости с операторами управления. Интерпретатор Python автоматически активирует мультистрочный режим, если нажать Enter после условия if. Например:
Чтобы закончить инструкцию if, нужно добавить еще одну инструкцию в блок if:
Python не будет автоматически добавлять отступ. Это нужно сделать самостоятельно. Закончив ввод инструкции, нужно дважды нажать Enter, чтобы исполнить инструкцию. После этого консоль вернется к изначальному состоянию.
Все эти программы заканчиваются внезапно, не показывая ничего, если условие не истинно. Но в большинстве случаев пользователю нужно показать хотя бы что-нибудь. Для этого используется оператор-выражение if-else.
Оператор if-else
Оператор if-else исполняет одну порцию инструкций, если условие истинно и другое — если нет. Таким образом этот оператор предлагает два направления действий. Синтаксис оператора if-else следующий:
Пример 1: программа для расчета площади и длины окружности круга.
Теперь программа показывает корректный ответ пользователю, даже если условие if не является истинным. Это и требуется.
В инструкциях if-else нужно следить за тем, чтобы условия if и else находились на одном уровне. В противном случае программа вернет синтаксическую ошибку. Например:
Если попробовать запустить эту программу, то появится следующая ошибка:
Для исправления проблемы нужно вертикально выровнять if и else
Пример 2: программа для проверки пароля, введенного пользователем.
Вложенные операторы if и if-else
Использовать операторы if-else можно внутри других инструкций if или if-else. Это лучше объяснить на примерах:
Оператор if внутри другого if-оператора
Пример 1: программа, проверяющая, имеет ли студент право на кредит.
Здесь оператор if используется внутри другого if-оператора. Внутренним называют вложенный оператором if. В этом случае внутренний оператор if относится к внешнему блоку if, а у внутреннего блока if есть только одна инструкция, которая выводит “Поздравляем, вам выдан кредит”.
Программа не выводит ничего. Причина в том, что у вложенного оператора if нет условия else. Добавим его в следующем примере.
Пример 2: инструкция if-else внутри другого оператора if.
Эта программа работает та же, как и предыдущая. Единственное отличие — у вложенного оператора if теперь есть инструкция else. Теперь если ввести балл GRE меньше, чем 150, программа выведет: “У вас низкий кредитный лимит”
При создании вложенных операторов if или if-else, всегда важно помнить об отступах. В противном случае выйдет синтаксическая ошибка.
Оператор if-else внутри условия else
Пример 3: программа для определения оценки студента на основе введенных баллов.
Хотя вложенные операторы if-else позволяют проверять несколько условий, их довольно сложно читать и писать. Эти же программы можно сделать более читабельными и простыми с помощью if-elif-else.
Оператор if-elif-else
Оператор if-elif-else — это альтернативное представление оператора if-else, которое позволяет проверять несколько условий, вместо того чтобы писать вложенные if-else. Синтаксис этого оператора следующий:
Перепишем программу с помощью if-elif-else.
Самоучитель
Ветвление и условные операторы Python для начинающих
Довольно часто в программах бывает нужно выполнить часть кода только тогда, когда выполняется определенное условие. Например, если пользователь введет некорректные данные, нужно вывести сообщение об ошибке.
В случае, если мы хотим сделать что‑то, только если выполняется какое‑либо условие, нам придется использовать оператор if.
Проще всего будет показать, как этот оператор работает на примере. Для этого попробуем написать программу «Угадай число». Если вы начинающий программист, обязательно попробуйте именно написать эту программу, чтобы прочувствовать на практике, как это работает. Компьютер выбирает случайное число, игрок пытается угадать, программа сообщает пользователю, верен ли его ответ.
Синтаксис оператора if прост — сначала надо написать ключевое слово if, после него — условие, а в самом конце строки должно быть двоеточие.
Все строки кода, которые должны выполнится при срабатывании условия, должны быть написаны с отступом в четыре пробела относительно ключевого слова if. По отступам Python понимает, что эти строки относятся именно к if, и выполнит их только если условие будет истинным. В нашем примере, вывод строки «Угадали!» будет выполнен только если пользователь введет правильное число.
Да, про модули мы поговорим позже, но, как вы уже возможно догадались, random.randint возвращает случайное число, а строка import random загружает модуль для работы со случайными числами в нашу программу. Список того, что может этот модуль можно посмотреть вот на этой странице. Сейчас мы, однако, говорим об условиях и поэтому продолжим:
Мы добавили оператор else, который отвечает за то, чтобы выполнить какой‑либо код в том случае, если не сработает оператор if. Связку этих двух операторов можно прочитать как «если какое‑то условие верно, выполнить такой‑то код, иначе — выполнить какой‑то другой код».
Кроме операторов if и else в одной связке можно использовать оператор elif. Он пригодится, если нужно что‑то посложнее реакции на верное или неверное условие. Например, нашу игру «Угадай число» можно дополнить еще двумя условиями проверки выхода введенного числа за допустимые границы:
if/elif/else¶
Конструкция if/elif/else позволяет делать ответвления в ходе программы. Программа уходит в ветку при выполнении определенного условия.
В этой конструкции только if является обязательным, elif и else опциональны:
Условия¶
True и False¶
В Python, кроме очевидных значений True и False, всем остальным объектам также соответствует ложное или истинное значение:
Например, так как пустой список это ложное значение, проверить, пустой ли список, можно таким образом:
Тот же результат можно было бы получить несколько иначе:
Операторы сравнения¶
Операторы сравнения, которые могут использоваться в условиях:
Пример использования операторов сравнения:
Оператор in¶
Оператор in позволяет выполнять проверку на наличие элемента в последовательности (например, элемента в списке или подстроки в строке):
При использовании со словарями условие in выполняет проверку по ключам словаря:
Операторы and, or, not¶
Оператор and¶
В Python оператор and возвращает не булево значение, а значение одного из операндов.
Если оба операнда являются истиной, результатом выражения будет последнее значение:
Если один из операторов является ложью, результатом выражения будет первое ложное значение:
Оператор or¶
При оценке операндов возвращается первый истинный операнд:
Если все значения являются ложными, возвращается последнее значение:
Пример использования конструкции if/elif/else¶
Пример скрипта check_password.py, который проверяет длину пароля и есть ли в пароле имя пользователя:
Тернарное выражение (Ternary expression)¶
Иногда удобнее использовать тернарный оператор, нежели развернутую форму:
Этим лучше не злоупотреблять, но в простых выражениях такая запись может быть полезной.
This work is licensed under a CC-BY-SA-4.0.
if else в Python
Зачастую нам не нужно, чтобы в программе выполнился весь код. Вместо этого мы можем сделать так, чтобы определенный кусочек кода запускался только при выполнении определенного условия, а другая часть кода запускалась, если условие не выполнено. Вот тут и пригодятся условные операторы if и else.
Условные операторы if else в Python позволяют четко и компактно управлять логическим потоком программы. Они представляют собой ответвления – как развилки на дороге – которые изменяют способ выполнения кода и управляют процессом принятия решений.
Итак, давайте начнем!
Синтаксис базового оператора if
Оператор if в Python, по существу, говорит:
Марк Лутц «Изучаем Python»
Скачивайте книгу у нас в телеграм
Возьмем следующий пример:
Как работает оператор if else в Python?
Оператор if запускает код только при выполнении условия. Иначе ничего не происходит.
Синтаксис блока if..else выглядит следующим образом:
По сути оператор if..else в Python говорит:
«Когда выражение после if оценивается как истинное ( True ), нужно выполнить следующий за ним код. Но если оно оценивается как ложное ( False ), нужно выполнить код, следующий за оператором else ».
Блок else запускается в следующем случае:
От редакции Pythonist. Также рекомендуем почитать «Блок else в циклах».
Как работает elif в Python?
Что, если мы хотим иметь больше, чем два варианта?
Вместо того, чтобы говорить: «Если первое условие истинно, сделай одно, в противном случае сделай другое», мы говорим: «Если это условие не истинно, попробуй другое, но если все условия не выполняются, сделай вот это».
Базовый синтаксис данной конструкции выглядит так:
В этом примере оператор if проверяет конкретное условие, блоки elif – это две альтернативы, а блок else — последнее решение, если все предыдущие условия не были выполнены.
В предыдущем примере, если бы мы написали:
Например, вот случай, когда будет выполняться инструкция else :
Заключение
В дальнейшем конструкции могут быть более сложными.
Условные операторы также могут быть вложены в другие условные операторы, в зависимости от проблемы, которую вы пытаетесь решить, и логики вашего решения.
Спасибо за чтение и успехов в написании кода!