Условный оператор if в Python. Синтаксис, блоки else/elif, примеры

В процессе обучения программированию часто приходится создавать программы, которые не так-то просто применить в реальной жизни. Ведь время от времени следовать инструкциям придется лишь при определенных условиях. Чтобы иметь возможность реализовать это в программе, во всех языках есть управляющие операторы. С их помощью вы можете контролировать поток выполнения кода, создавая циклы или выполняя определенные действия только при выполнении определенного условия.

Сегодня мы поговорим об операторе if, который проверяет текущую ситуацию на предмет определенного условия и на основе этой информации принимает решения о дальнейших действиях.

Типы управляющих операторов

В общем, if — не единственный оператор, управляющий ходом программы. А также он сам может быть частью более крупной цепочки операторов.

Также существуют циклы и операторы, управляющие процессом его выполнения. Сегодня мы поговорим только об условном операторе и цепочках, в которых он может участвовать.

В программировании есть такое понятие, как ветвление. Именно это означает последовательность команд, которая выполняется только в том случае, если определенное условие истинно. Сами критерии могут быть разными:

  1. Равенство переменной определенному значению.
  2. Выполнение определенного действия.
  3. Состояние приложения (свернуто или нет).

Спектр может быть гораздо больше. Условные операторы бывают нескольких типов:

  1. С одной веткой. То есть выполняется одиночная проверка, в результате которой выполняются определенные действия.
  2. С двумя и более ответвлениями. Если критерий 1 верен, то проверяем критерий 2. Если он верен, то проверяем 3. И так выполняем столько проверок, сколько необходимо.
  3. С несколькими условиями. Здесь все просто. Интерпретатор проверяет наличие нескольких условий или одно из них.

если заявление

Структура оператора if одинакова во всех языках. Однако в Python его синтаксис несколько отличается от всех остальных:

если условие:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Сначала объявляется сам оператор, после чего пишется условие, при котором он начинает работать. Условие может быть либо истинным, либо ложным.

Далее следует блок с командами. Если он следует сразу за критерием, которому необходимо соответствовать, то соответствующая последовательность команд называется блоком if. В нем вы можете использовать любое количество команд.

Внимание! Отступы внутри всех команд блока if должны быть одинакового размера. Границы блоков определяются отступами. 

Согласно документации языка, отступ составляет 4 пробела. 

Как работает этот оператор? Когда интерпретатор видит слово if, он немедленно проверяет выражение на соответствие критериям, заданным пользователем. Если это так, то он начинает искать инструкции и следовать им. В противном случае все команды из этого блока пропускаются.

Если оператор после условия не имеет отступа, он не рассматривается как блок if. В нашей ситуации эта линия . Поэтому независимо от результата проверки эта строка будет выполнена.

Вот фрагмент кода для примера того, как работает этот оператор.

число = int(input("Введите число: "))

если число > 10:

    print("Число больше 10")

Эта программа запрашивает у пользователя число и проверяет, больше ли оно 10. Если да, она возвращает соответствующую информацию. Например, если пользователь введет цифру 5, то программа просто завершится, и все.

Но если вы укажете число 100, то переводчик поймет, что оно больше десяти, и сообщит об этом.

Внимание! В нашем случае, если условие ложно, программа останавливается, поскольку после инструкции не подаются никакие команды.

В приведенном выше коде есть только одна команда. Но их гораздо больше. Единственное требование — сделать отступ.

Теперь давайте проанализируем эту последовательность команд.

число = int(input("Введите число: "))

если число > 10:

    печать («первая строка»)

    print("вторая строка")

    print("третья строка")

print("Строка, которая выполняется независимо от введенного числа")

print("Завершить приложение")

Попробуйте угадать, какой будет результат, если вы введете значения 2, 5, 10, 15, 50.

Как видите, если введенное пользователем число больше десяти, то выводятся три строки + одна с текстом «Выполнять каждый раз…» и одна «Конец», а если меньше десяти, то только одна, с другой текст. Если true, будут выполнены только строки 3,4,5. Однако последние две строки будут записаны независимо от того, какое число укажет пользователь.

Если вы используете операторы непосредственно в консоли, результат будет другим. Переводчик сразу включает многострочный режим, если после указания критерия проверки нажать Enter.

Предположим, мы написали следующую последовательность команд.

>>>

>>> п = 100

>>> если n > 10:

...

После этого мы увидим, что >>> заменено многоточием. Это означает, что включен режим многострочного ввода. Простыми словами, если вы нажмете Enter, вы перейдете к вводу второго этапа инструкции. 

И чтобы выйти из этого блока, нужно добавить в блок еще одну конструкцию if.

>>>

>>> п = 100

>>> если n > 10:

… print(«nv 10»)

...

Если условие неверно, программа завершается. Это проблема, так как пользователь может воспринимать такую ​​программу как закрытую из-за сбоя. Поэтому необходимо дать обратную связь пользователю. Для этого используется ссылка если еще.

оператор выражения если еще

Этот оператор позволяет реализовать ссылку: если выражение соответствует определенному правилу, выполнить эти действия, а если нет, то другие. То есть позволяет разделить поток программы на две дороги. Синтаксис интуитивно понятен:

если условие:

    # если блокировать

    Заявление 1

    Заявление 2

    и так далее

еще:

    # блок еще

    Заявление 3

    Заявление 4

    и так далее:

Поясним, как работает этот оператор. Сначала стандартный оператор выполняется в потоке тис, проверяю, совпадает ли оно состояние "правда или ложь". Дальнейшие действия зависят от результатов проверки. Если это правда, инструкция, которая находится в последовательности инструкций, следующих за условием, выполняется напрямую. тис, если это ложь, то еще

Таким образом вы можете обрабатывать ошибки. Например, пользователю необходимо ввести радиус. Очевидно, что это может быть только число со знаком плюс или нулевое значение. Если оно меньше 0, то нужно выдать сообщение с просьбой ввести положительное число. 

Вот код, реализующий эту задачу. Но здесь есть одна ошибка. Попробуйте угадать, какой именно. 

радиус = int(input("Введите радиус: "))

если радиус >= 0:

    print("Окружность = ", 2 * 3.14 * радиус)

    print("Площадь = ", 3.14 * радиус ** 2)

    еще:

        print("Пожалуйста, введите положительное число")

Ошибка несоответствия отступов. Если и еще должны располагаться без них или с одинаковым их количеством (в зависимости от того, вложенные они или нет).

Приведем еще один вариант использования (где с выравниванием операторов все будет правильно) — элемент приложения, проверяющий пароль.

пароль = input("Введите пароль: ")

если пароль == «сшш»:

    распечатать («Добро пожаловать»)

еще:

    print("Доступ запрещен")

Эта инструкция пропускает человека дальше, если пароль sshh. Если любая другая комбинация букв и цифр, то выводится сообщение «Доступ запрещен».

выражение-оператор if-elif-else

Только если несколько условий неверны, выполняется оператор, находящийся в блоке. еще. Это выражение работает следующим образом.

если условие_1:

    # если блокировать

    заявление

    заявление

    еще заявление

Элиф условие_2:

    # первый блок elif

    заявление

    заявление

    еще заявление

Элиф условие_3:

    # второй блок elif

    заявление

    заявление

    еще заявление

...

еще

    заявление

    заявление

    еще заявление

Вы можете указать любое количество дополнительных условий.

Вложенные операторы

Другой способ реализовать несколько условий — вставить дополнительные проверки условий в блок if.

оператор if внутри другого блока условий

gre_score = int(input("Введите текущий кредитный лимит"))

per_grad = int(input("Введите свой кредитный рейтинг: "))

если per_grad > 70:

    # внешний блок if

        если gre_score > 150:

            # внутренний блок if

    print("Поздравляем, вы получили кредит")

еще:

    print("К сожалению, вы не имеете права на получение кредита")

Эта программа выполняет проверку кредитного рейтинга. Если оно меньше 70, программа сообщает, что пользователь не имеет права на получение кредита. Если оно больше, выполняется вторая проверка на предмет, превышает ли текущий кредитный лимит 150. Если да, то отображается сообщение о том, что кредит выдан.

Если оба значения ложны, то выводится сообщение о том, что у пользователя нет возможности получить кредит. 

Теперь давайте немного переработаем эту программу.

gre_score = int(input("Введите текущий предел: "))

per_grad = int(input("Введите кредитный рейтинг: "))

если per_grad > 70:

    если gre_score > 150:

        print("Поздравляем, вы получили кредит")

    еще:

        print("Ваш кредитный лимит низкий")

еще:

    print("К сожалению, вы не имеете права на получение кредита")

Сам код очень похож, но вложенный if также предоставляет алгоритм на случай, если условие из него окажется ложным. То есть лимит по карте недостаточен, но кредитная история хорошая, высвечивается сообщение «У вас низкий кредитный рейтинг».

оператор if-else внутри условия еще

Давайте создадим еще одну программу, которая определяет оценку ученика на основе результатов тестов.

счет = int(input("Введите свой результат: "))

если оценка >= 90:

    print("Отлично! Ваша оценка — А")

еще:

    если оценка >= 80:

print("Отлично! Ваша оценка B")

    еще:

если оценка >= 70:

    print("Хорошо! Ваша оценка C")

еще:

    если оценка >= 60:

print("Ваша оценка D. Стоит повторить материал.")

    еще:

print("Вы провалили экзамен")

Приложение сначала проверяет, больше или равен ли балл 90. Если да, то оно возвращает оценку A. Если это условие ложно, то выполняются последующие проверки. Мы видим, что алгоритм на первый взгляд практически одинаковый. Поэтому вместо того, чтобы проверять внутри еще лучше использовать комбинацию если-элиф-еще.

Итак, оператор if выполняет очень важную функцию — следит за тем, чтобы определенные фрагменты кода выполнялись только в том случае, если в этом есть необходимость. Без него невозможно представить программирование, потому что даже самые простые алгоритмы требуют развилок типа «если ты пойдешь налево, ты найдешь это, а если пойдешь направо, то тебе нужно сделать то-то и то-то».

Оставьте комментарий