Оператор if-else исполняет одну порцию инструкций, если условие истинно и другое — если нет. Таким образом этот оператор предлагает два направления действий. Синтаксис оператора if-else следующий:
if condition:
# блок if
statement 1
statement 2
and so on
else:
# блок else
statement 3
statement 4
and so on:
Как это работает:
Когда оператор if-else исполняется, условие проверяется, и если оно возвращает True, когда инструкции в блоке if исполняются. Но если возвращается False, тогда исполняются инструкции из блока else.
Пример 1: программа для расчета площади и длины окружности круга.
radius = int(input("Введите радиус: "))
if radius >= 0:
print("Длина окружности = ", 2 * 3.14 * radius)
print("Площадь = ", 3.14 * radius ** 2)
else:
print("Пожалуйста, введите положительное число")
Первый вывод:
Введите радиус: 4
Длина окружности = 25.12
Площадь = 50.24
Второй вывод:
Введите радиус: -12
Пожалуйста, введите положительное число
Теперь программа показывает корректный ответ пользователю, даже если условие if не является истинным. Это и требуется.
В инструкциях if-else нужно следить за тем, чтобы условия if и else находились на одном уровне. В противном случае программа вернет синтаксическую ошибку. Например:
radius = int(input("Введите радиус: "))
else:
print("Пожалуйста, введите положительное число")
Если попробовать запустить эту программу, то появится следующая ошибка:
$ python3 if_and_else_not_aligned.py
File "if_and_else_not_aligned.py", line 6
else:
^
SyntaxError: invalid syntax
$
Для исправления проблемы нужно вертикально выровнять if и else
Другой пример:
Пример 2: программа для проверки пароля, введенного пользователем.
password = input("Введите пароль: ")
if password == "sshh":
print("Добро пожаловать")
else:
print("Доступ запрещен")
Первый вывод:
Введите пароль: sshh
Добро пожаловать
Второй вывод:
Введите пароль: abc
Доступ запрещен