Оператор 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, но данный подход не универсальный и подойдет далеко не всегда.