Найти в Дзене
Будни питониста

Оператор if .. else.

Оператор if .. else называется оператором ветвления. Он в зависимости от значения логического выражения может выполнить или, наоборот, не выполнить какой-то участок программы. Формат этого оператора следующий:

if <логическое выражение>:

<операторы, которые будут выполнены, если условие истинно>

[elif <логическое выражение>:

<операторы, которые будут выполнены, если условие истинно>

]

[else:

<операторы, которые будут выполнены, если условие истинно>

]

Напомню, что блоки в составной конструкции выделяются одинаковым количеством пробелов. Конец блока - инструкция, перед которой расположено меньшее число пробелов.

Рассмотрим небольшой пример. Сейчас мы напишем программу, которая будет запрашивать число N у пользователя. Далее программа проверяет введенное значение - оно больше или меньше ста - и выводит соответствующее сообщение (листинг ниже.

Листинг . Пример использования оператора if .. else

n = int(input("Bвeдитe N: "));

if n < 100:

print("n < 100")

else:

print("n > 100")

Результат выполнения листинга
Результат выполнения листинга

У нас очень простая программа, в которой каждый блок состоит из одной инструкции, поэтому ее можно переписать так, как показано в листинге ниже.

Листинг. Пример использования оператора if .. else- 2

n = int(input("Bвeдитe N: "));

if n < 100: print("n < 100")

else: print("n > 100")

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

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

Листинг. Проверка нескольких условий

рrint("""Выберите ваш брауэер:

1 - Google Chrome

2 – Firefox

3 - MS Internet Explorer

4 – Opera

5 – Safari

6 - Другой""");

browser = int(input(""));

if browser == 1:

print("Chrome");

elif browser == 2:

print("Firefox");

elif browser == 3:

print ("MS IE");

elif browser == 4:

print("Opera");

elif browser == 5:

print("Safari");

elif browser == б:

print("Other");

Результат работы программы из листинга
Результат работы программы из листинга

Недостаток нашей программы - то, что она никак не реагирует, если пользователь введет число, отличное от 1 до 6. Исправить это можно с помощью еще одного блока else:

if browser == 1:

print("Chrome");

elif browser == 2:

print("Firefox");

elif browser == 3:

print ("MS IE");

elif browser == 4:

print("Opera");

elif browser == 5:

print("Safari");

elif browser == 6:

print("Дpyгoй");

else:

рrint("Неправильное значение")

Не забывайте указывать блок else, если нужна реакция на неопределенное в блоках elif значение.

Примечание. Если вы программировали на других языках, то вам наверняка знаком оператор switch .. case. Смысл этого оператора в следующем: в switch задается выражение, значение которого сравнивается со значениями, заданными в блоках case. Если значение совпало, то выполняются операторы, указанные в этом блоке case. К сожалению, в Python нет такого оператора, и вам придется строить конструкции if..elif..else. Некоторые программисты предлагают использовать словари вместо switch .. case, но данный подход не универсальный и подойдет далеко не всегда.