Условные операторы

Программа может выполняться постепенно: строка за строкой, выражение за выражением от начала и до конца, не пропуская ни единой строки кода. Но такое в реальности происходит редко. Зачастую необходимо ввести вариативность, чтобы при выполнении определенного условия, происходило одно, а при его невыполнении – другое. Так применяются условные операторы.

Определение

Условные операторы в Python 3 иногда называют операторами ветвления. Они созданы, чтобы программа могла выбрать, какой инструкции стоит следовать при определенном значении заданной переменной. Условные операторы состоят из заголовка и тела. Заголовок – это сама конструкция и то, что стоит рядом с ним (не в фигурных скобках в других языках программирования или перед двоеточием в Python). Тело – то, что написано после двоеточия. Чтобы программа поняла, что код после него является вложенным, необходимо обязательно сделать отступ в виде четырех пробелов. Обычно они ставятся автоматически, если пользователь работает в специально созданной среде программирования.

Заметим, что пользоваться клавишей Tab для создания отступа крайне нежелательно.

Ситуаций, в которых можно было бы применить условный оператор, великое множество. К ним, например, относится:

  • Определение, сдал ли студент экзамен. При количестве верных ответов 10 из 15 – сдал, если меньше – не сдал;
  • Выяснение размера скидки. Если купил 10 товаров – скидка 10%, если меньше – скидка не предоставляется.

Оператор if

С английского название этого оператора переводится, как «если». То есть он задает условие. После данного оператора записывается само выражение. Если оно оказывается истинным, то программа переходит к выполнению инструкции, заданной в указанном операторе. Выражение считается истинным, когда оно:

  • не равно нулю;
  • не является пустым;
  • является логическим

Для ясности рассмотрим пример использования if — условия в Python 3:

if 3:
    print("Привет 3")

На экране перед пользователем появится запись: Привет 3.

Усложним код:

a = 6
if a == 6:
    print("Привет 2")

На дисплее компьютера отобразится: Привет 2.

Также можно задать условие формулой или условным выражением:

a = 5
if a > 2:
    print("Привет 3")

Переменная равна 5, условие, чтобы она была больше 2. Оно истинное, поэтому перед нами появится: Привет 3.

Еще более сложный вариант с несколькими переменными:

a = 0
b = 34
c = 10
if c < 100:
    a = b + c
print(a)

Поскольку с действительно меньше 100, а станет равным 44, и именно это число появится на дисплее при выполнении данного кода. Если бы с изначально было большее 100, например, 110, то на экране бы отобразился 0, переменная а просто не изменилась бы вообще.

Оператор else

Иногда программе нужно указать, что делать, если условие оказывается ложным. Для этого задается новый набор инструкций и используется конструкция if – else. Кстати, стоит запомнить, что в else не может быть никакого логического выражения. Также невозможна и ситуация, при которой выполнятся обе ветви (и if, и else).

Рассмотрим пример:

a = 7
if a > 5:
    print("Да")
else:
    print("Нет")

При выполнении данного кода на компьютере появится: Да. Это происходит, потому что 7 действительно больше заданной в условии цифры 5.

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

a = 3
if a > 5:
    print("Да")
else:
    print("Нет")

Очевидно, что перед пользователем появится слово «Нет», поскольку 3 не больше 5, а меньше.

Усложним код:

product1 = 30
product2 = 23
if product1+ product2 > 70 :
    print("70 рублей не хватит")
else:
    print("Денег хватает, все оплачено")

В данном случае программист увидит запись: Денег хватает, все оплачено, поскольку 30 + 23 = 53, а это меньше чем 70.

Оператор elif и конструкция if – elif – else

Вообще elif примерно расшифровывается, как else + if. Чтобы можно было реализовать программу, которая выбирала бы из нескольких альтернативных вариантов, используется указанная конструкция.

Рассмотрим код, в котором имеется несколько условий:

if balance < 0:
    print("Баланс ниже нуля, положите деньги на счет, чтобы Вам не выписали штраф")
elif balance == 0:
    print("Баланс равен нулю, скорее внесите деньги на счет")
else:
    print("Ваш баланс выше нуля, все хорошо")

Так, программа может рассмотреть варианты с тремя условиями. И если переменная balance будет равна 150, то перед пользователем появится надпись: Ваш баланс выше нуля, все хорошо.

Оператор elif позволяет упростить код. Сделать его легче читаемым. Позволяет избежать написание несколько условий if в Python.

Тернарный оператор

Иногда для сокращения записи используется так называемый тернарный оператор, благодаря ему код набирается в одну строку. Посмотрим на пример того, как можно записать условие Python в одну строку:

is_happy = True
state = "happy" if is_happy else "not happy"

Чтобы не расписывать в несколько строк оператор if, просто используем сжатый вариант.

Конструкция switch – case

Данная инструкция в Python не используется. Вместо этого можно применять конструкции с несколькими elif. Например, программист хочет написать код, чтобы программа ставила оценку за пройденный студентами тест. При этом оценок может быть несколько. Тогда можно оформить так:

if grade >= 50:
    print("Оценка 5 с плюсом")
elif grade >= 45:
    print("Оценка 5")
elif grade >= 35:
    print("Оценка 4")
elif grade >= 25:
    print("Оценка 3")
else:
    print("Тест провален")

В этом случае значение переменной grade будет сравниваться со всеми условиями подряд. Однако когда условие станет истинным, выполнение кода остановится и на экране появится сообщение об оценке. Например, если grade равен 30, то на дисплей будет выведена надпись: Оценка 3; если же переменная будет ниже 25, то пользователь увидит: Тест провален.

 

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